黑马程序员--java集合TreeSet
来源:互联网 发布:js改变body的display 编辑:程序博客网 时间:2024/05/16 18:53
-------android培训、java培训、期待与您交流! ----------
»知识点总结
1.TreeSet:可以对Set集合中的元素进行排序。
底层数据结构是二叉树。
保证元素唯一性的依据: compareTo方法return 0.
2. TreeSet排序的第一种方式:让元素自身具备比较性。
元素需要实现Comparable接口,覆盖compareTo方法。
也种方式也成为元素的自然顺序,或者叫做默认顺序。
3. TreeSet的第二种排序方式。
当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性。
在集合初始化时,就有了比较方式。
⊙代码练习
public static void main(String[] args){//"90 -7 0 18 2 45 4" 将字符串中的数值进行排序。使用TreeSet完成。String str = "90 -7 0 18 2 45 4";String[] ss = str.split(" ");TreeSet ts6 = new TreeSet();for(String s : ss){ts6.add(Integer.parseInt(s));}String str2 = ts6.toString();String str3 = str2.replace(",", " ");//str3= str3.replace((CharSequence) new Regexp("[\\[\\]]"), "");A.print(str3);String[] chs = str.split(" ");TreeSet ts5 = new TreeSet(new Comparator(){@Overridepublic int compare(Object o1, Object o2){Integer i1 = new Integer((String)o1);Integer i2 = new Integer((String)o2);return i1.compareTo(i2);}});for(String s : chs){ts5.add(s);}Object[] strArr = ts5.toArray();StringBuilder sb = new StringBuilder();for(int i=0, len=strArr.length; i<len; i++){String str1 = (String) strArr[i];sb.append(str1);if(i<len-1)sb.append(" ");}String str2 = sb.toString();A.print("-"+str2+"-");//按照字符串长度排序TreeSet ts4 = new TreeSet(new Comparator(){@Overridepublic int compare(Object o1, Object o2){String s1 = (String)o1;String s2 = (String)o2;int r = new Integer(s1.length()).compareTo(new Integer(s2.length()));if(r != 0)return r;return s1.compareTo(s2);}});ts4.add("aa");ts4.add("x");ts4.add("ab");ts4.add("bcd");ts4.add("ac");A.print(ts4);//TreeSet ts3 = new TreeSet(new StudentComparator());TreeSet ts3 = new TreeSet();ts3.add(new Student("w1", 20));ts3.add(new Student("w2", 30));ts3.add(new Student("w3", 20));//ts3.add(new Student("w2", 20));A.print(ts3);TreeSet ts2 = new TreeSet();ts2.add(new Student("w1", 20));ts2.add(new Student("w2", 30));ts2.add(new Student("w3", 40));ts2.add(new Student("w1", 20));ts2.add(new Student("w4", 40));for(Iterator it=ts2.iterator(); it.hasNext();){A.print(it.next());}}}class StudentComparator implements Comparator{@Overridepublic int compare(Object o1, Object o2){Student s1 = (Student)o1;Student s2 = (Student)o2;A.print(s1.getName()+"-->"+s2.getName());int r = s2.getName().compareTo(s1.getName());if(r!=0)return r;return new Integer(s2.getAge()).compareTo(new Integer(s1.getAge()));}//不实现总是安全的,提高效率@Overridepublic boolean equals(Object obj){// TODO Auto-generated method stubreturn super.equals(obj);}}-------android培训、java培训、期待与您交流! ----------
- 黑马程序员--java集合TreeSet
- [黑马程序员]集合--TreeSet
- 黑马程序员——java集合中的TreeSet
- 黑马程序员—Java集合框架(Set、HashSet、TreeSet)
- 黑马程序员:Java基础——Set集合之TreeSet
- 黑马程序员 _ java基础 _ 之集合类TreeSet
- 黑马程序员--集合之HashSet/TreeSet原理
- 黑马程序员 集合框架之TreeSet实例
- 黑马程序员——TreeSet集合
- 黑马程序员_Set集合的子类HashSet集合,TreeSet集合
- 黑马程序员---java集合框架之类集图与TreeSet排序
- 黑马程序员java基础之集合Set中的TreeSet和泛型
- 黑马程序员-java TreeSet的使用
- 黑马程序员-java之TreeSet,Comparable,Comparator
- 黑马程序员 集合ArrayList、HashSet和TreeSet的使用
- 黑马程序员——>第十五天<集合框架(TreeSet-泛型)>
- (黑马程序员)TreeSet集合总节笔记(一)
- (黑马程序员)TreeSet集合总节笔记(二)
- 动态规划(5)字符串相似度算法
- Java excel 操作
- POJ 1426 Find The Multiple
- 保护眼睛的颜色的各种色值,强力推荐!
- Build openssl with just RSA and AES
- 黑马程序员--java集合TreeSet
- 对象克隆-深复制-浅复制
- 图之prim算法
- 我们该如何设计数据库(二)
- Oracle层次查询和with函数的使用
- 黑马程序员 常用的一些小算法
- Linux进程同步之POSIX信号量
- C3P0连接池使用小结
- C#打印杨辉三角实例