java-Collections的应用

来源:互联网 发布:mac 迅雷怎么断点下载 编辑:程序博客网 时间:2024/05/01 02:26

Collection和Collections的区别:

Collection是JAVA集合框架中的顶层接口.常用的两个子接口为:Set和List.

Collections是Java集合框架中操作集合的工具类,所有的方法都是静态的.提供了对List进行排序的功能,也提供了将线程不安全的转为线程安全的方法.

 

import java.util.*;
class CollectionsDemo
{
 public static void main(String[] args)
 {
  ArrayList<String>al = new ArrayList<String>();
  al.add("zdd");
  al.add("ad");
  al.add("qsdw");
  al.add("vwerre");
  al.add("sxsd");
  
  System.out.println("***按照自然顺序***");
  String max =Collections.max(al);
  String min =Collections.min(al);
  System.out.println("max="+max+";min="+min);

  System.out.println("***按照字符长度***");
  String max1 =Collections.max(al, new MyComparator());
  String min1 =Collections.min(al, new MyComparator());
  System.out.println("max="+max1+";min="+min1);
  
  Collections.sort(al);  

  System.out.println(al.toString());
  toMyString(al );

  int num =Collections.binarySearch(al, "qsdw");
  System.out.println(num);

       Collections.sort(al, new MyComparator()); 
  System.out.println(al.toString());
  int num1 = myBinarySearch(al,"qsdw", new MyComparator());
  System.out.println(num1);  
 }
 public static voidtoMyString(ArrayList<String>al)
 {
  StringBuilder sb = newStringBuilder();
  sb.append("[");
  for (Iterator it =al.iterator(); it.hasNext(); )
  {
   sb.append(it.next()+ ", ");
  }
  //sb.deleteCharAt(sb.length() -2);
  sb.delete(sb.length()-2,sb.length());
  sb.append("]");
  System.out.println(sb);
 }

 public static int myBinarySearch(List<String> l, String key,Comparator<String> comp)
 {
  int max,min,mid;
  max = l.size() - 1;
  min =0;  
  while (min <=max)
   
   mid = (max +min)/2;
   int num =comp.compare(key, l.get(mid)); //按照自定义比较器比较
   if (num> 0)
    min= mid + 1;
   else if (num< 0)
    max= mid - 1;
   else
    returnmid;
  }
  return -1;
 }

}

class MyComparator implements Comparator<String>
{
 public int compare(String str1, Stringstr2)
 {
  if (str1.length()> str2.length())
   return1;
  else if (str1.length()< str2.length())
   return-1;
  else
   returnstr1.compareTo(str2);
 }
}

原创粉丝点击