Благодаря @Thilo я с ума интерфейс, как это:Использует компаратор «offtopic» плохой стиль java?
public interface compareOp<T> {
public boolean compare(T op1, T op2);
}
и «внедренцев»:
private static final compareOp<Integer> GreaterThan = new compareOp<Integer>() {
@Override
public boolean compare(Integer x, Integer y) {
if (x > y)
return true;
return false;
}
};
private static final compareOp<Integer> SameThan = new compareOp<Integer>() {
@Override
public boolean compare(Integer x, Integer y) {
if (x == y)
return true;
return false;
}
};
private static final compareOp<Integer> LessThan = new compareOp<Integer>() {
@Override
public boolean compare(Integer x, Integer y) {
if (x < y)
return true;
return false;
}
};
У меня есть writte сом код, где я делаю я сравнительная нужен этот код три раза для терки, равно меньше, но я не хотел, чтобы дублировать код так, я сделал параметр аккомпанемент типа компаратор и проверить:
if (comp.compare(output1[i][n1], output2[j][n2]) == 0)
мои компараторы не могут использоваться для нормальной сортировки, потому что они нарушают правила -1,0,1, но я не использую их для других вещей.
Это плохой стиль относительно правил Java?
вот код из моих компараторов:
private static final Comparator<Integer> GreaterThen = new Comparator<Integer>() {
@Override
public int compare(Integer x, Integer y) {
if (x > y)
return 0;
return -1;
}
};
private static final Comparator<Integer> SameThen = new Comparator<Integer>() {
@Override
public int compare(Integer x, Integer y) {
if (x == y)
return 0;
if (x > y)
return 1;
return -1;
}
};
private static final Comparator<Integer> LessThen = new Comparator<Integer>() {
@Override
public int compare(Integer x, Integer y) {
if (x < y)
return 0;
return 1;
}
};
и то, как я их использовать:
new Helpers().subSetsCompared(input1, 3, input2, 4, GreaterThen);
new Helpers().subSetsCompared(input1, 3, input2, 4, SameThen);
new Helpers().subSetsCompared(input1, 3, input2, 4, LessThen);
Если вы обеспокоены стилем, вы также можете использовать слово «чем» вместо «затем». – rid
Хорошая точка i будет реорганизовать это;) – user2792876
Я не уверен, что понимаю - с вашими компараторами GreaterThan и LesserThan, 'compare (x, x);' возвращает -1: вы действительно этого хотите? Вы должны дать больше информации о том, почему вы это делаете, потому что, вероятно, лучший способ. – assylias