J2SE第七章——集合框架(容器)三
来源:互联网 发布:表达很牛的网络用语 编辑:程序博客网 时间:2024/05/17 06:17
4. Collections 类
类java.util.Collections提供了一些静态方法基于List容器的一些算法
排序 voidsort(List)
逆序 void reverse(List)
随机 void shuffle(List)
折半查找 (先升序排列) intbinarySearch(List,Object)
public class Test { public static void main(String[] args) {m1();}public static void m1() {List list = new Arraylist();for (int i=0;i<5;i++) {//Random类,产生随机数Random r = new Random();//nextInt(int n) 产生0~n-1之间的随机整数list.add(r.nextInt(100));}System.out.println("原始数据"+list);Collections.sort(list);System.out.println("sort:"+list); // 默认升序Collections.reverse(list); // 逆序System.out.println("reverse:"+list); // 降序Collections.shuffle(list); // 随机排序System.out.println("shuffle:"+list); }}
5.comparable接口
java.lang.Comparable 不用导入
public class Test {public static void main(String[] args) {m1();m2();}public static void m1() {List list = new ArrayList();list.add("Tom");list.add("Mike");list.add("Joke");Collections.sort(list);System.out.println(list); // [Joke Mike Tom]}public static void m2() {List list = new ArrayList();list.add(new Person("zhang","san"));list.add(new Person("li","si"));list.add(new Person("wang","wu"));Collections.sort(list);System.out.println(list); //抛异常了~!}}
出错的原因:sort()排序方法,排序即比较排序对象的“大小, 那么sort()抛异常,可能的原因是不能确定待排序对象的“大小”
为什么不知道大小:
约定如果“对象”之间比较大小,那么该对象所属的类必须实现comparable接口
并重写booleancomparaTo()方法
也就是说两个对象大小的比较,由comparaTo()的返回值决定
即String类实现了Comparable接口,并实现了comparaTo(),在该方法中定义了两个字符串对象大小的比较
源码:public int comparaTo(String anotherString) {< 0 当前对象 小于 参数对象= 0 当前对象 等于 参数对象> 0 当前对象 大于 参数对象}
class Person implements Comparable {private String firstName;private String lastName;public Person(String firstName,String lastName) {this.firstName = firstName;this.lastName = lastName;}public int comparaTo(Object antherPerson) {Person antherPerson = (Person) obj;if (firstName.comparaTo(antherPerson.firstName) == 0) {return lastName.comparaTo(antherPerson.lastName);} else {return firstName.comparaTo(antherPerson.firstName);}}public String toString() {return firstName + "," + lastName; }}
0 0
- J2SE第七章——集合框架(容器)三
- J2SE第七章——集合框架(容器)
- J2SE第七章——集合框架(容器)二
- J2SE第七章——集合框架——Map
- 第七章——集合框架
- 马士兵J2SE-第七章-容器
- ★第七章:容器/集合
- 面向对象——第七章 集合框架
- [马士兵J2SE学习笔记]第七章 容器
- J2SE - 集合框架
- J2SE之集合框架
- ★第七章:容器/集合 02 泛型
- j2se之集合框架篇
- 第七章 集合框架(一)
- JAVA OOP第七章 集合框架
- JAVA第七章-集合(三)
- 黑马程序员——java基础知识之集合框架(容器)
- Java基础—集合框架(三)
- MFC RadioButton用法详解
- 回文字符串 基础题
- 用互联网思维来开发客户端软件——项目开发小结
- 球差(Spherical Abereation)消除方法
- linux scp命令 (复制远程主机上的文件到本地)
- J2SE第七章——集合框架(容器)三
- git(版本控制系统)的使用
- leetcode(42) - Trapping Rain Water
- Shell Sed 替换特定行特定字符
- grep,sed,awk
- 将一些大神的博客收集起来
- Quartz初使用
- errno代码对应的意义
- css垂直居中对齐transform实现