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
を表示する最小値と最大値を検索します。文字列配列の値a
は最小値ですが、この場合は最小値としてMary
が表示されます。
String配列の最小値と最大値を見つけるより良い方法を教えてもらえますか?
目的のために容易に利用可能なコンパレータを示すことによって助けないのはなぜ。または 'Collator.getInstance()'? – Andreas
@アンドレアス希望の注文が何であるか分かりません。出力に関する唯一の問題は、大文字と小文字を区別した順序である可能性がありますが、私はそれを確信できません。 – Eran
オペレーションが必要とする可能性が非常に高いので、OPが「コンパレータ」を書く必要があることを意味する「*あなたが適合していると思われるロジックを実装する」*というよりも(または加えて)スクラッチから。これはあまり役に立ちません。 – Andreas