Компаратор Java

Еще один пример здесь. Вы можете использовать также для

let array = [1, 2, 3, 4, 5, 6];
async function processArray(arr){
  for (const num of array) {
    await request('http://google.com').get('/');
    console.log(num);
  }
  console.log('Done!');
}

processArray(array);
8
задан 26 October 2008 в 08:40
поделиться

4 ответа

Вместо:

factory.getComparatorForClass(x.getClass()).compare(x, y)

Вы могли просто реализовать Comparable и запись:

x.compareTo(y)

Строка, примитивные обертки и стандартные наборы уже реализуют Comparable.

13
ответ дан 5 December 2019 в 05:57
поделиться

Использовать CompareToBuilder из палаты общин Lang.

Помогает в реализации Comparable.compareTo (Объект) методы.

Для использования этого класса пишут код следующим образом:

public class MyClass {
  String field1;
  int field2;
  boolean field3;

  ...

  public int compareTo(Object o) {
    MyClass myClass = (MyClass) o;
    return new CompareToBuilder()
      .appendSuper(super.compareTo(o)
      .append(this.field1, myClass.field1)
      .append(this.field2, myClass.field2)
      .append(this.field3, myClass.field3)
      .toComparison();
  }
}
10
ответ дан 5 December 2019 в 05:57
поделиться

Я не знаю ни о чем как этот первое, что пришло на ум. При реальной необходимости в чем-то вроде этого не должно быть слишком трудно реализовать то сами.

Однако Вы могли уточнить то, почему Вам нужно что-то вроде этого? Обычно не должно быть компаратора "по умолчанию" для классов. Если класс имеет своего рода естественное упорядочивание, у Вас действительно должен быть он реализация java.lang.Comparable, и реализация Comparable#compareTo(Object) : int вместо этого.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Comparable.html

4
ответ дан 5 December 2019 в 05:57
поделиться

Компаратор является потребностью быть, расширяются.. это основано на реализации повторно используемого кода.. в них метод у Вас может быть пользовательское сравнение данных.. реализация просто проста.. просто реализуйте интерфейс Comparator.. переопределите его compareto метод и поместите код сравнения.. и возвратитесь, который Вы думаете, больше с точки зрения значений..

1
ответ дан 5 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: