集合框架—— Collections之sort()、max()、binarySearch()方法
来源:互联网 发布:追溯软件 编辑:程序博客网 时间:2024/05/21 14:10
/*集合框架的工具类。Collections:集合框架的工具类。里面定义的都是静态方法。Collections和Collection有什么区别?Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。它有两个常用的子接口,List:对元素都有定义索引。有序的。可以重复元素。Set:不可以重复元素。无序。Collections是集合框架中的一个工具类。该类中的方法都是静态的提供的方法中有可以对list集合进行排序,二分查找等方法。通常常用的集合都是线程不安全的。因为要提高效率。如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。*/import java.util.*;class CollectionsDemo{public static void main(String[] args) {sortDemo();}public static void binarySearchDemo(){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,new StrLenComparator());sop(list);//int index = Collections.binarySearch(list,"aaaa");//int index = halfSearch(list,"cc");int index = halfSearch2(list,"aaaa",new StrLenComparator());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;// /2;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;// /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;elsereturn mid;}return -min-1;}public static void maxDemo(){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 StrLenComparator()*/);sop("max="+max);}public static void sortDemo(){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 StrLenComparator());//Collections.swap(list,1,2);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);}}/*class Student{}list.add(new Student());public static <T extends Comparable<? super T>> void sort(List<T> list){}*/
阅读全文
0 0
- 集合框架—— Collections之sort()、max()、binarySearch()方法
- 集合(Collections-sort)-(Collections-max)-(Collections-binarySearch)
- Java基础之集合框架--Collections.binarySearch()
- (77)Collections类:sort、max、binarySearch、fill、replaceAll、reverse
- Java基础之集合框架--Collections工具类之max()方法
- Java基础之集合框架--Collections工具类中的sort()方法
- 集合工具类Collections.sort()排序方法
- java-Collections的sort集合排序方法
- [Collections.sort方法]——逻辑梳理
- Java基础之集合框架--Collections.reverse()方法
- Java集合框架之Collections类的常用方法
- Java Collections Framework之Arrays(method:sort(),binarySearch(),copyOf())部分源码分析(基于JDK1.6)
- 黑马程序员——Java集合框架(三)之Map集合、Collections与Arrays工具类
- (集合框架)collections工具类的常用方法
- Java集合 --Collections.sort()
- 集合框架总结(collections)
- (好使)用Java集合中的Collections.sort方法对list排序的两种方法
- 黑马程序员——集合、集合框架工具类(collections和Arrays)和其他对象
- GitHub远程仓库操作
- 一个易错的C语言优先级
- 机器学习降维算法一:PCA(主成分分析算法)
- mybatis判断相等的问题
- ThreadPoolExecutor(线程池的构建)
- 集合框架—— Collections之sort()、max()、binarySearch()方法
- requireJS多页面应用实例
- mysql索引总结----mysql 索引类型以及创建
- react-native 侧滑组件 react-native-swipe-list-view
- 1170: 最长字符串(指针专题)
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
- Android 通过adb发广播的形式开启activity
- QNX system architecture 3
- .NET图像处理库ImageGear for .NET v23.2发布,增加新的PDF压缩功能