Я новичок в программировании в Java. Следующий исходный код находится в книге, когда я пытаюсь выполнить программу, он показывает некоторые неправильные данные.Java - Найти минимальное и максимальное значение массива строк
public class Pair<T> {
private T first;
private T second;
public Pair() {
first = null;
second = null;
}
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public T getSecond() {
return second;
}
public void setFirst(T newValue) {
first = newValue;
}
public void setSecond(T newValue) {
second = newValue;
}
}
Logic найти минимальное и максимальное значение массива строк
public class ArrayAlg {
public static Pair<String> minmax(String[] arr) {
if (arr == null || arr.length == 0)
return null;
String min = arr[0];
String max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (min.compareTo(arr[i]) > 0)
min = arr[i];
if (max.compareTo(arr[i]) < 0)
max = arr[i];
}
return new Pair<String>(min, max);
}
}
public static void main(String[] args) {
String[] words = { "Mary", "had", "a", "little", "lamb" };
Pair<String> obj = ArrayAlg.minmax(words);
System.out.println("Minvalue " + obj.getFirst());
System.out.println("Maxvalue " + obj.getSecond());
}
Если выполнить вышеуказанную программу, она показывает Minvalue = Mary and MaxValue = little
. Значение a
в массиве String является минимальным значением, но в этом случае оно отображает Mary
в качестве минимального значения.
Может ли кто-нибудь сказать мне лучший подход найти минимальное и максимальное значение в массиве String?
Почему бы не помочь, показывая легкодоступного компаратор для цели: 'String.CASE_INSENSITIVE_ORDER'. Или 'Collator.getInstance()'? – Andreas
@ Andreas Я не уверен, что это за заказ. Вполне возможно, что единственной проблемой с выходом был чувствительный к регистру порядок, но я не могу быть уверен в этом. – Eran
Поскольку существует очень высокая вероятность, что именно то, что требуется OP, вы должны предложить это, а не (или в дополнение к) только сказать * «реализовать любую логику, которую вы сочтете нужным» *, подразумевая, что OP должен был бы написать «Comparator» с нуля. Это не очень полезно. – Andreas