Java基础--集合框架之Collections


凌风博客原创作品。转载请注明出处:http://blog.youkuaiyun.com/q549130180/article/details/45313475

集合框架工具类

Collections

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. import java.util.*;  
  2. class CollectionsDemo1  
  3. {  
  4.     public static void main(String[] args)   
  5.     {  
  6.         shuffleDemo();  
  7.     }  
  8.   
  9.     public static void shuffleDemo()  
  10.     {  
  11.         //将原有顺序打乱,从新存入集合  
  12.         List<String> list = new ArrayList<String>();  
  13.   
  14.         list.add("abcd");  
  15.         list.add("aaa");  
  16.         list.add("bb");  
  17.         list.add("zz");  
  18.         list.add("qq");  
  19.         list.add("dddddd");  
  20.   
  21.         sop(list);  
  22.         Collections.shuffle(list);  
  23.         sop(list);  
  24.     }  
  25.   
  26.     public static void orderDemo()  
  27.     {  
  28.         /* 
  29.         //反转list集合 
  30.         TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder()); 
  31.  
  32.         ts.add("abcde"); 
  33.         ts.add("aaa"); 
  34.         ts.add("kkk"); 
  35.         ts.add("ccc"); 
  36.         */  
  37.           
  38.         //根据长度进行反转  
  39.         TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));  
  40.   
  41.         ts.add("abcde");  
  42.         ts.add("aa");  
  43.         ts.add("k");  
  44.         ts.add("ccc");  
  45.           
  46.           
  47.         Iterator it = ts.iterator();  
  48.   
  49.         while (it.hasNext())  
  50.         {  
  51.             sop(it.next());  
  52.         }  
  53.     }  
  54.   
  55.     public static void replaceAllDemo()  
  56.     {  
  57.         //根据元素替换值  
  58.         List<String> list = new ArrayList<String>();  
  59.   
  60.         list.add("abcd");  
  61.         list.add("aaa");  
  62.         list.add("bb");  
  63.         list.add("zz");  
  64.         list.add("qq");  
  65.         list.add("dddddd");  
  66.   
  67.         sop(list);  
  68.         Collections.replaceAll(list,"aaa","pp");  
  69.         sop(list);  
  70.   
  71.     }  
  72.   
  73.     public static void fillDemo()  
  74.     {  
  75.         //fill方法可以将list集合中所有元素替换成指定元素  
  76.         List<String> list = new ArrayList<String>();  
  77.   
  78.         list.add("abcd");  
  79.         list.add("aaa");  
  80.         list.add("bb");  
  81.         list.add("zz");  
  82.         list.add("qq");  
  83.         list.add("dddddd");  
  84.   
  85.         sop(list);  
  86.         Collections.fill(list,"qq");//将list集合中所有元素替换成qq  
  87.         sop(list);  
  88.     }  
  89.   
  90.     public static void binarySearchDemo()  
  91.     {  
  92.         List<String> list = new ArrayList<String>();  
  93.   
  94.         list.add("abcd");  
  95.         list.add("aaa");  
  96.         list.add("bb");  
  97.         list.add("zz");  
  98.         list.add("qq");  
  99.         list.add("dddddd");  
  100.   
  101.         Collections.sort(list);  
  102.         sop(list);  
  103.   
  104.         int index = Collections.binarySearch(list,"aaa");  //返回负数表示不存在  
  105.   
  106.         sop("index="+index);  
  107.     }  
  108.   
  109.     public static int halfSearch(List<String> list,String key)  
  110.     {  
  111.         //binarySearch实现原理  
  112.         int max,min,mid;  
  113.         max = list.size()-1;  
  114.         min = 0;  
  115.   
  116.         while (min<=max)  
  117.         {  
  118.             mid = (max+min)>>1;  //   /2;  
  119.             String str = list.get(mid);  
  120.   
  121.             int num = str.compareTo(key);  
  122.   
  123.             if(num>0)  
  124.                 max = mid-1;  
  125.             else if(num<0)  
  126.                 min = mid+1;  
  127.             else  
  128.                 return mid;  
  129.         }  
  130.         return -min-1;  
  131.     }  
  132.   
  133.     public static int halfSearch2(List<String> list,String key,Comparator<String> cmp)  
  134.     {  
  135.         //比较器实现原理  
  136.         int max,min,mid;  
  137.         max = list.size()-1;  
  138.         min = 0;  
  139.   
  140.         while (min<=max)  
  141.         {  
  142.             mid = (max+min)>>1;  //   /2;  
  143.             String str = list.get(mid);  
  144.   
  145.             int num = cmp.compare(str,key);  
  146.   
  147.             if(num>0)  
  148.                 max = mid-1;  
  149.             else if(num<0)  
  150.                 min = mid+1;  
  151.             else  
  152.                 return mid;  
  153.         }  
  154.         return -min-1;  
  155.     }  
  156.   
  157.     public static void maxDemo()  
  158.     {  
  159.         //方法作用:获取集合中最大值  
  160.         List<String> list = new ArrayList<String>();  
  161.   
  162.         list.add("abcd");  
  163.         list.add("aaa");  
  164.         list.add("bb");  
  165.         list.add("zz");  
  166.         list.add("qq");  
  167.         list.add("dddddd");  
  168.   
  169.         Collections.sort(list);  
  170.         sop(list);  
  171.         String max = Collections.max(list/*,new StrLenComparator() //取长度最大*/);  
  172.         sop("max="+max);  
  173.     }  
  174.   
  175.     public static void sortDemo()  
  176.     {  
  177.         //方法作用:给list集合进行排序  
  178.         List<String> list = new ArrayList<String>();  
  179.   
  180.         list.add("abcd");  
  181.         list.add("aaa");  
  182.         list.add("bb");  
  183.         list.add("zz");  
  184.         list.add("qq");  
  185.         list.add("dddddd");  
  186.           
  187.         sop(list);  
  188.   
  189.         //Collections.sort(list);//给List集合进行排序  
  190.         Collections.sort(list,new StrLenComparator());//给List集合按长度进行排序  
  191.   
  192.         sop(list);  
  193.     }  
  194.   
  195.     public static void sop(Object obj)  
  196.     {  
  197.         System.out.println(obj);  
  198.     }  
  199. }  
  200.   
  201. class StrLenComparator implements Comparator<String>  
  202. {  
  203.     public int compare(String s1,String s2)  
  204.     {  
  205.         if(s1.length()>s2.length())  
  206.             return 1;  
  207.         if(s1.length()<s2.length())  
  208.             return -1;  
  209.         return s1.compareTo(s2);  
  210.     }  
  211. }  

Array:用于操作数组的工具类,里面都是静态方法。


[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. import java.util.*;  
  2. class ArraysDemo2   
  3. {  
  4.     public static void main(String[] args)   
  5.     {  
  6.         //int[] arr = {2,4,5};  
  7.         //System.out.println(Arrays.toString(arr));  
  8.   
  9.         String[] arr = {"abc","cc","kkkk"};  
  10.         /* 
  11.         把数组变成list集合有什么好处? 
  12.         可以使用集合的思想和方法来操作数组中的元素 
  13.  
  14.         注意:将数组变成集合后,不可以使用集合的增删方法, 
  15.                 因为数组的长度是固定的,可以使用contains,get等方法 
  16.  
  17.                 如果你增删,那么会发生Unsupported{perationException(不支持操作异常) 
  18.         */  
  19.         List<String> list = Arrays.asList(arr);  
  20.         System.out.println("contains:"+list.contains("cc"));  //遍历集合,看cc是否存在  
  21.         //list.add("qq");//Unsupported{perationException(不支持操作异常)  
  22.           
  23.         System.out.println(list);  
  24.   
  25.   
  26.         //-----------------------------------  
  27.         //int [] nums = {2,4,5};  
  28.         Integer [] nums = {2,4,5};  
  29.   
  30.         List<Integer> li = Arrays.asList(nums);  
  31.           
  32.         /* 
  33.         如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。 
  34.         如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。 
  35.         */  
  36.         System.out.println(li);  
  37.   
  38.     }  
  39. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值