import java.util.*;
public class CollectionsTs
{
public static void main(String[] args)
{
List l1 = new ArrayList();
//List l2 = new LinkedList();

for(int i=0;i<=5;i++)
{
l1.add("a"+i);

System.out.println(l1);

Collections.shuffle(l1);//随机
System.out.println(l1);

Collections.sort(l1);//排序
System.out.println(l1);

Collections.reverse(l1);//逆序
System.out.println(l1);


System.out.println(Collections.min(l1));

     System.out.println(Collections.binarySearch(l1,"a0"));//为什么输出的结果为-1
     

}

}

解决方案 »

  1.   

    public static <T> int binarySearch(List<? extends Comparable<? super T>> list,
                                       T key)使用二分搜索法搜索指定列表,以获得指定对象。在进行此调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List) 方法)。如果没有对列表进行排序,则结果是不确定的。如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。 System.out.println(Collections.binarySearch(l1,"a0"));
    前加一句
    Collections.sort(l1);
      

  2.   

    很简单啊,2分法要求的是你从小到大依次排列的数据,你最后给别个逆序,当然找不出来,你放到Collections.sort(l1);//排序后面就行了