集合之Collections
来源:互联网 发布:android app启动优化 编辑:程序博客网 时间:2024/06/07 20:12
1、sort
根据元素的自然顺序 对指定列表按升序进行排序。
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);//排序 sop(list); sop(list);Collections.sort(list,new StrLenComparator());//按指定比较器排序 sop(list);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); }}
max
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()*/);//结果zz===/*最大长度kkkkk*/ sop("max="+max); }
二分搜索——必须有序集合
binarySearch
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; 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);//没有比较性,所以不能用compareto if(num>0) max = mid -1; else if(num<0) min = mid + 1; else return mid; } return -min-1; }
fill填充
/* 练习。fill方法可以将list集合中所有元素替换成指定元素。 ,将list集合中部分元素替换成指定元素。 */ public static void fillDemo() { List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaa"); list.add("zz"); list.add("kkkkk"); sop(list); Collections.fill(list,"pp"); sop(list);//全部换成pp }
替换replace 和反转reverse
public static void replaceAllDemo() { List<String> list = new ArrayList<String>(); list.add("abcd"); list.add("aaa"); list.add("zz"); list.add("kkkkk"); sop(list); Collections.replaceAll(list,"aaa","pp"); sop(list);//aaa换成pp Collections.reverse(list); sop(list);//逆向 }
0 0
- 集合之Collections
- 集合之Collections
- 集合之Collection与Collections
- hibernate参考手册之---集合类(Collections)映射
- 集合框架之Collections静态工具类
- Java基础--集合框架之Collections
- Java集合框架之Collections工具类
- java集合框架之Collections类
- Java集合工具类之Collections
- Java基础之集合框架--Collections.binarySearch()
- Java基础之集合框架--Collections.reverseOrder()
- Java集合之六Collections工具类
- 集合之Collections——集合的工具类
- 集合(Collections-sort)-(Collections-max)-(Collections-binarySearch)
- Java集合框架(JCF:Java Collections Framework)之概述
- Java Collections Framework - Java集合框架之概要
- Java集合框架(JCF:Java Collections Framework)之概述
- Java Collections Framework - Java集合框架之概要
- java语言基础(23)——面向对象三大特性(封装、继承、多态)
- CODE[VS] 1475 m进制转十进制
- [DP] BZOJ 4574 [Zjoi2016]线段树
- linux下xml安装和使用
- 从零开始学 SpringBoot (1)
- 集合之Collections
- (OK) shmem: enable user xattr for tmpfs
- 梯度下降算法总结
- C++学习笔记(7)
- protobuf-2.5.0.tar.gz的下载与安装
- Exception的ToString()方法究竟返回的是什么
- C/C++ rand产生随机数
- [05]javascript的运算符
- Android热修复学习之旅——Andfix框架完全解析