Question 187
Given:
13. public static void search(List<String> list) {
14. list.clear();
15. list.add(”b”);
16. list.add(”a”);
17. list.add(”c”);
18. System.out.println(Collections.binarySearch(list, “a”));
19. }
What is the result of calling search with a valid List implementation?
A. 0
B. 1
C. 2
D. a
E. b
F. c
G. The result is undefined.
答案是:G为什么不确定呢?
明明开始clear了啊~而且我自己测试十几次,都是输出1啊- -
Given:
13. public static void search(List<String> list) {
14. list.clear();
15. list.add(”b”);
16. list.add(”a”);
17. list.add(”c”);
18. System.out.println(Collections.binarySearch(list, “a”));
19. }
What is the result of calling search with a valid List implementation?
A. 0
B. 1
C. 2
D. a
E. b
F. c
G. The result is undefined.
答案是:G为什么不确定呢?
明明开始clear了啊~而且我自己测试十几次,都是输出1啊- -
你随便实现一个List,保存顺序自己说了算,结果你能确定吗
public static void main(String[] args) {
Test t = new Test();
List<String> list1 = new ArrayList<String>();
list1.add("abc");
search(list1);
} public static void search(List<String> list) {
list.clear();
list.add("b");
list.add("a");
list.add("c");
System.out.println(Collections.binarySearch(list, "a"));
}result: 1
正如肥企鹅所说的,如果这个LIST是自己写的,add方法的顺序自己定的,那就不能确定"a"所在的index就一定是1了。
答案不是1答案是输出不确定啊~~~有些回答说是和实现有关,可是API上:public interface List<E>extends Collection<E>有序的 collection(也称为序列)。
此接口的用户可以对列表中每个元素的插入位置进行精确地控制。
用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。所有实现List接口的都应该是有顺序的啊,按照索引找到确定位置元素,这个是接口要求啊- -