我是用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;
}
}
逻辑找到字符串数组
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
的min和max值。字符串数组中的值a
是最小值,但在这种情况下,它将Mary
显示为最小值。
任何人都可以告诉我更好的方法来查找字符串数组中的最小值和最大值吗?
为什么不显示为目的的现成的比较有帮助。或'Collator.getInstance()'? – Andreas
@Andreas我不确定期望的排序是什么。输出的唯一问题可能是区分大小写的排序,但我无法确定。 – Eran
由于非常有可能是OP所需要的,你应该建议它,而不是(或者除了)只说*“实现你认为合适的任何逻辑”*,这意味着OP将不得不写'比较器'从头开始。这不是很有用。 – Andreas