私は現在、Javaエキスパートプロファイルのインタビューの質問を書いています。ここにあります:
このコードを検討する:
リスト1
package com.example;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Searching {
public static void main(String[] args) {
int input = Integer.valueOf(args[0]);
String[] strings = {"1", "2", "4", "8", "16", "32", "64", "128"};
List<Integer> integers = new ArrayList<Integer>();
for (String s : strings) {
integers.add(Integer.valueOf(s));
}
System.out.println("index of "+input+" is:"+Collections.binarySearch(integers, input, cmp));
}
static Comparator<Integer> cmp = new Comparator<Integer>() {
public int compare(Integer i, Integer j) {
return i < j ? -1 : (i == j ? 0 : 1);
}
};
}
次に、このコードはこのcmd行でコンパイルされます
リスト2
javac com/example/Searching.java
このコマンドラインで実行します
リスト3
java com/example/Searching 128
質問A:
リスト3のプロデュースを実行すると:
index of 128 is:-8
この出力について説明できますか?
質問B:
これを考慮して
java com/example/Searching 32
出力は
index of 32 is:5
この出力について説明できますか?
質問C:
JRE 1.6、シェル、およびテキストエディタがあると仮定します。この出力を生成するために、リスト1および/またはリスト2および/またはリスト3に何を変更しますか?
index of 128 is:7
備考:変更が少なければ少ないほど良いです。
私の質問は:
- それらの質問に対するあなたの答えは何ですか?
- それを改善する方法は?