Коллекции Java и Компаратор - PullRequest
0 голосов
/ 28 ноября 2018

Вариант использования - эффективный способ сортировки списка пользовательских объектов, например,

class oC extends A{
  int id;
  ArrayList ocR;
}

class ocR extends A{
  @Override
  public int hashCode() {
    return super.hashCode();
  }

  @Override
  public boolean equals(Object o) {
    return super.equals(o);
  }
} 

ArrayList ocR для каждого объекта oC также должен быть в отсортированном порядке.

Текущее решениея создал функцию сортировки, которая реализует Comparator

sort(List items){
  Collections.sort(items, new Comparator(){ //Logic for comparator by 
                                              overriding compare(A a, A b)} 
}

, а затем я использую следующий код

List Oc comments;
for(int index=0;index<comments.size();index++){
   //This is for sorting ArrayList ocR of each oC object
   this.sort(comments.get(index).getocRs());
}
//This is for sorting List of oC
this.sort(comments);`

Есть ли способ покончить с циклом for без реализациикомпартмент по классу oC или oCR?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Список поддерживает порядок вставки.Для более подробной информации: Почему в Java нет SortedList?

Вместо списка попробуйте использовать TreeSet, чтобы объекты сохранялись в порядке

0 голосов
/ 28 ноября 2018

Если вы используете Java 8, вы можете сделать следующее:

comments.forEach(oc -> sort(oc.getocRs()))
...