Я не знаю, правильно ли я понимаю, что вы хотите, но требуемый цикл должен выполняться с использованием вложенного цикла, рассмотрите следующий код:
public static void main(String[] args) {
LinkedHashSet<String> freq = new LinkedHashSet<String>();
freq.add("pen");
freq.add("pencil");
freq.add("eraser");
freq.add("scale");
for (String item : freq) {
performeOperation(item, freq);
}
}
private static void performeOperation(String primeItem, LinkedHashSet<String> freq) {
for (String secondItem : freq) {
if (primeItem != secondItem) {
System.out.println(primeItem + ", " + secondItem);
}
}
}
Пример вывода:
pen, pencil
pen, eraser
pen, scale
pencil, pen
pencil, eraser
pencil, scale
eraser, pen
eraser, pencil
eraser, scale
scale, pen
scale, pencil
scale, eraser
Если вам не нужны повторяющиеся пары, используйте это:
public static void main(String[] args) {
LinkedHashSet<String> freq = new LinkedHashSet<String>();
LinkedHashSet<String> param = new LinkedHashSet<String>();
freq.add("pen");
freq.add("pencil");
freq.add("eraser");
freq.add("scale");
param.addAll(freq);
for (String item : freq) {
param.remove(item);
performeOperation(item, param);
}
}
private static void performeOperation(String primeItem, LinkedHashSet<String> param) {
for (String secondItem : param) {
System.out.println(primeItem + ", " + secondItem);
}
}
Пример вывода:
pen, pencil
pen, eraser
pen, scale
pencil, eraser
pencil, scale
eraser, scale
Да, это можно сделать, используя один LinkedHashSet
, но вы должны использовать LinkedHashSet
для поддержания порядка вставки элементов, чтобы это решение могло работать.
public static void main(String[] args) {
LinkedHashSet<String> freq = new LinkedHashSet<String>();
freq.add("pen");
freq.add("pencil");
freq.add("eraser");
freq.add("scale");
for (String item : freq) {
performeOperation(item, freq);
}
}
private static void performeOperation(String primeItem, LinkedHashSet<String> param) {
boolean flag = false;
for (String secondItem : param) {
if (flag) {
System.out.println(primeItem + ", " + secondItem);
} else if (primeItem.equals(secondItem)) {
flag = true;
}
}
}