标签:Set name age List && Student treeSet public TreeSet
List
是一个接口实现可重复有序的存储,有ArrayList和Linked List两种实现类中使用的方法为add()list.iterrator获得迭代器,通过迭代器进行遍历
区别在于数组和链表的区别
数组查询容易,增加和删除难,
链表增删容易,查询需要遍历;
Set
一个不可重复无序的存储方式,也是常用方法为add和list.iterrator获得迭代器来遍历
hashSet底层为hashmap当我们判断是否为相同值的时候需要同时覆写hashcode和equals方法
TreeSet判断重复为自然排序和定制排序(类似于中介者模式)
自然排序为实现comparable接口实现comparaTO方法的返回值如果为0就不可重复,如果为1或者-1为可重复
package cn.jiedada.TreeSet; import java.util.Comparator; import java.util.TreeSet; public class Test { /*也是Set的实现类 * 不可重复的无序存储 * 遍历方法 * 不可重复的实现 * 自然排序compareTo和定制排序Comparable这个接口 * 定制排序 * */ public static void main(String[] args) { // TODO Auto-generated method stub TreeSet treeSet = new TreeSet(); Teacher teacher1 = new Teacher("李老师", 42); Teacher teacher2 = new Teacher("李老师", 42); //在添加的时候只能添加同一类的实列 /* Exception in thread "main" java.lang.ClassCastException: cn.jiedada.TreeSet.Teacher cannot be cast to java.lang.Comparable*/ treeSet.add(teacher1); treeSet.add(teacher2); /*Exception in thread "main" java.lang.ClassCastException: * cn.jiedada.TreeSet.Teacher cannot be cast to java.lang.Integer*/ //treeSet.add(1); System.out.println(treeSet); /*TreeSet(Comparator<? super E> comparator) */ } } class Teacher implements Comparable{ String name; Integer age; public Teacher(String name, Integer age) { super(); this.name = name; this.age = age; } @Override public int compareTo(Object o) { // TODO Auto-generated method stub return 0; } @Override public String toString() { return "Teacher [name=" + name + ", age=" + age + "]"; } }View Code
定制排序为compartor接口我们可以为我们自己指定的规则判断是否重复
package cn.jiedada.TreeSet; import java.util.Comparator; import java.util.TreeSet; public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub TreeSet treeSet=new TreeSet(new Comparator() { @Override public int compare(Object o1, Object o2) { Student student1=(Student)o1; Student student2=(Student)o2; return student1.age.compareTo(student2.age); } }); Student student = new Student("李鹏", 18); Student student2 = new Student("小张", 18); treeSet.add(student); treeSet.add(student2); System.out.println(treeSet); } } class Student{ String name; Integer age; public Student(String name, Integer age) { super(); this.name = name; this.age = age; } }View Code
标签:Set,name,age,List,&&,Student,treeSet,public,TreeSet 来源: https://www.cnblogs.com/xiaoruirui/p/11290925.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。