读书人

Collections习题

发布时间: 2012-11-12 12:31:58 作者: rapoo

Collections练习

import java.util.*;class CollectionsTest {public static void main(String[] args) {//mySort();//myMax();myBinarySearch();}public static void mySort(){List<String> list = new ArrayList<String>();list.add("abcd");list.add("aaa");list.add("zz");list.add("kkkkk");list.add("qq");list.add("z");sop(list);// Collections.sort(list);Collections.sort(list, new StrLenCompartor());//Collections.swap(list,1,2);sop(list);}public static void myMax(){List<String> list = new ArrayList<String>();list.add("abcd");list.add("aaa");list.add("zz");list.add("kkkkk");list.add("qq");list.add("z");Collections.sort(list);sop(list);String max = Collections.max(list/*, new StrLenCompartor()*/);sop("max:" + max);}public static void myBinarySearch(){List<String> list = new ArrayList<String>();list.add("abcd");list.add("aaa");list.add("zz");list.add("kkkkk");list.add("qq");list.add("z"); Collections.sort(list);//Collections.sort(list, new StrLenCompartor());sop(list);int index = Collections.binarySearch(list, "aaa");//int index = halfSearch(list, "aaaa");//int index = halfSearch2(list, "aaaa", new StrLenCompartor());sop("index:" + index);}public static int halfSearch(List<String> list, String key){int max, min, mid;max = list.size() - 1;min = 0;while(min <= max){mid = (max + min) >> 1;String str = list.get(mid);int num = str.compareTo(key);if(num > 0)max = mid -1;else if(num < 0)min = mid + 1;elsereturn 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;String str = list.get(mid);int num = cmp.compare(str, key);if(num > 0)max = mid -1;else if(num < 0)min = mid + 1;elsereturn mid;}return -min - 1;}public static void sop(Object obj){System.out.println(obj);}}class StrLenCompartor 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);}}

读书人网 >编程

热点推荐