У меня есть Nested LinkedList, который содержит некоторые элементы. Я хочу удалить дублирующийся внутренний LinkedList из Outter LinkedList. Порядок элемента не имеет значения. [Кошка, мышь, собака] такая же, как [Мышь, кошка, собака] и я Хотите удалить 1 из них. Пример:
Предположим,
[[Cat,Mouse,Dog],[Dog,Mouse,Cat],[Dog,Horse,Cat],[Dog,Tiger,Lion]]
тогда я хочу, чтобы вывести этот файл
[[Cat,Mouse,Dog],[Dog,Horse,Cat],[Dog,Tiger,Lion]]
Я попробовал. но я хочу Оптимальное решение...... Мой код ниже
for (int iBoardListCnt = 0; this.roomCombinationsMasterList != null && iBoardListCnt < this.roomCombinationsMasterList.size(); iBoardListCnt++) {
LinkedList<Board> alRoomCombinationList = new LinkedList<>();
alRoomCombinationList = this.roomCombinationsMasterList.get(iBoardListCnt);
ArrayList<String> alTemp = new ArrayList();
for (int icount = 0; icount < alRoomCombinationList.size(); icount++) {
alTemp.add((alRoomCombinationList.get(icount).getRoomDescription() + alRoomCombinationList.get(icount).getDescription()).toString());
}
roomCombinationsMasterList.remove(iBoardListCnt);
Collections.sort(alTemp, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
Iterator<LinkedList<Board>> iterator = roomCombinationsMasterList.iterator();
while (iterator.hasNext()) {
ArrayList<String> alTemp1 = new ArrayList<>();
for (Board data : iterator.next()) {
alTemp1.add((data.getRoomDescription() + data.getDescription()).toString());
}
Collections.sort(alTemp1, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
if (alTemp.equals(alTemp1)) {
iterator.remove();
continue;
}
}
roomCombinationsMasterList.add(iBoardListCnt, alRoomCombinationList);
}
В этом коде я взял элемент Fist из Nested LinkedList. сохраненный во временном LinkedList, я удалил этот элемент из основного arraylist.Now у меня есть следующий элемент из LinkedList, который хранится во 2-й временной LinkedList. Сортируйте LinkedList с помощью Comparator И используя метод equals(), сравните эти два LinkedList.If оба они одинаковы, а затем удалите 1 из них с помощью Iterator. пожалуйста, дайте мне Оптимальное решение по нему.