凌风博客原创作品。转载请注明出处:http://blog.youkuaiyun.com/q549130180/article/details/45313475
集合框架工具类
Collections
- import java.util.*;
- class CollectionsDemo1
- {
- public static void main(String[] args)
- {
- shuffleDemo();
- }
- public static void shuffleDemo()
- {
- //将原有顺序打乱,从新存入集合
- List<String> list = new ArrayList<String>();
- list.add("abcd");
- list.add("aaa");
- list.add("bb");
- list.add("zz");
- list.add("qq");
- list.add("dddddd");
- sop(list);
- Collections.shuffle(list);
- sop(list);
- }
- public static void orderDemo()
- {
- /*
- //反转list集合
- TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
- ts.add("abcde");
- ts.add("aaa");
- ts.add("kkk");
- ts.add("ccc");
- */
- //根据长度进行反转
- TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
- ts.add("abcde");
- ts.add("aa");
- ts.add("k");
- ts.add("ccc");
- Iterator it = ts.iterator();
- while (it.hasNext())
- {
- sop(it.next());
- }
- }
- public static void replaceAllDemo()
- {
- //根据元素替换值
- List<String> list = new ArrayList<String>();
- list.add("abcd");
- list.add("aaa");
- list.add("bb");
- list.add("zz");
- list.add("qq");
- list.add("dddddd");
- sop(list);
- Collections.replaceAll(list,"aaa","pp");
- sop(list);
- }
- public static void fillDemo()
- {
- //fill方法可以将list集合中所有元素替换成指定元素
- List<String> list = new ArrayList<String>();
- list.add("abcd");
- list.add("aaa");
- list.add("bb");
- list.add("zz");
- list.add("qq");
- list.add("dddddd");
- sop(list);
- Collections.fill(list,"qq");//将list集合中所有元素替换成qq
- sop(list);
- }
- public static void binarySearchDemo()
- {
- List<String> list = new ArrayList<String>();
- list.add("abcd");
- list.add("aaa");
- list.add("bb");
- list.add("zz");
- list.add("qq");
- list.add("dddddd");
- Collections.sort(list);
- sop(list);
- int index = Collections.binarySearch(list,"aaa"); //返回负数表示不存在
- sop("index="+index);
- }
- public static int halfSearch(List<String> list,String key)
- {
- //binarySearch实现原理
- int max,min,mid;
- max = list.size()-1;
- min = 0;
- while (min<=max)
- {
- mid = (max+min)>>1; // /2;
- String str = list.get(mid);
- int num = str.compareTo(key);
- if(num>0)
- max = mid-1;
- else if(num<0)
- min = mid+1;
- else
- return mid;
- }
- return -min-1;
- }
- public static int halfSearch2(List<String> list,String key,Comparator<String> cmp)
- {
- //比较器实现原理
- int max,min,mid;
- max = list.size()-1;
- min = 0;
- while (min<=max)
- {
- mid = (max+min)>>1; // /2;
- String str = list.get(mid);
- int num = cmp.compare(str,key);
- if(num>0)
- max = mid-1;
- else if(num<0)
- min = mid+1;
- else
- return mid;
- }
- return -min-1;
- }
- public static void maxDemo()
- {
- //方法作用:获取集合中最大值
- List<String> list = new ArrayList<String>();
- list.add("abcd");
- list.add("aaa");
- list.add("bb");
- list.add("zz");
- list.add("qq");
- list.add("dddddd");
- Collections.sort(list);
- sop(list);
- String max = Collections.max(list/*,new StrLenComparator() //取长度最大*/);
- sop("max="+max);
- }
- public static void sortDemo()
- {
- //方法作用:给list集合进行排序
- List<String> list = new ArrayList<String>();
- list.add("abcd");
- list.add("aaa");
- list.add("bb");
- list.add("zz");
- list.add("qq");
- list.add("dddddd");
- sop(list);
- //Collections.sort(list);//给List集合进行排序
- Collections.sort(list,new StrLenComparator());//给List集合按长度进行排序
- sop(list);
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
- class StrLenComparator implements Comparator<String>
- {
- public int compare(String s1,String s2)
- {
- if(s1.length()>s2.length())
- return 1;
- if(s1.length()<s2.length())
- return -1;
- return s1.compareTo(s2);
- }
- }
Array:用于操作数组的工具类,里面都是静态方法。
- import java.util.*;
- class ArraysDemo2
- {
- public static void main(String[] args)
- {
- //int[] arr = {2,4,5};
- //System.out.println(Arrays.toString(arr));
- String[] arr = {"abc","cc","kkkk"};
- /*
- 把数组变成list集合有什么好处?
- 可以使用集合的思想和方法来操作数组中的元素
- 注意:将数组变成集合后,不可以使用集合的增删方法,
- 因为数组的长度是固定的,可以使用contains,get等方法
- 如果你增删,那么会发生Unsupported{perationException(不支持操作异常)
- */
- List<String> list = Arrays.asList(arr);
- System.out.println("contains:"+list.contains("cc")); //遍历集合,看cc是否存在
- //list.add("qq");//Unsupported{perationException(不支持操作异常)
- System.out.println(list);
- //-----------------------------------
- //int [] nums = {2,4,5};
- Integer [] nums = {2,4,5};
- List<Integer> li = Arrays.asList(nums);
- /*
- 如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
- 如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
- */
- System.out.println(li);
- }
- }