学习集合总结

  
  
  
  
  1. set: 无序,不可以重复元素 |--HashSet : 数据结构是哈希表,线程是非同步的 保证元素唯一性的原理:判断元素的 hashCode值是否相同 |--Treeset : 可以对集合中的元素进行排序 两种比较方法:1.元素自身具有比较性 2.集合容器具有比较性 当两中排序都存在时,一比较器为主 定义一个类,实现Comparator接口,覆盖compare方法
  2.  
  3. import java.util.*; 
  4.  
  5. /* 
  6. 当元素自身不具备比较性,或者具备的比较性不是所需要的。 
  7. 这时需要让容器自身具备比较性。 
  8. 定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。 
  9.  
  10. 当两种排序都存在时,以比较器为主。 
  11.  
  12. 定义一个类,实现Comparator接口,覆盖compare方法。 
  13.  
  14.  
  15. */ 
  16. class Student implements Comparable//该接口强制让学生具备比较性。 
  17.     private String name; 
  18.     private int age; 
  19.  
  20.     Student(String name,int age) 
  21.     { 
  22.         this.name = name; 
  23.         this.age = age; 
  24.     } 
  25.  
  26.     public int compareTo(Object obj) 
  27.     { 
  28.  
  29.         //return 0; 
  30.          
  31.         if(!(obj instanceof Student)) 
  32.             throw new RuntimeException("不是学生对象"); 
  33.         Student s = (Student)obj; 
  34.  
  35.         //System.out.println(this.name+"....compareto....."+s.name); 
  36.         if(this.age>s.age) 
  37.             return 1
  38.         if(this.age==s.age) 
  39.         { 
  40.             return this.name.compareTo(s.name); 
  41.         } 
  42.         return -1
  43.         /**/ 
  44.     } 
  45.  
  46.     public String getName() 
  47.     { 
  48.         return name; 
  49.  
  50.     } 
  51.     public int getAge() 
  52.     { 
  53.         return age; 
  54.     } 
  55. class TreeSetDemo2  
  56.     public static void main(String[] args)  
  57.     { 
  58.         TreeSet ts = new TreeSet(); 
  59.  
  60.         ts.add(new Student("lisi02",22)); 
  61.         ts.add(new Student("lisi02",21)); 
  62.         ts.add(new Student("lisi007",20)); 
  63.         ts.add(new Student("lisi09",19)); 
  64.         ts.add(new Student("lisi06",18)); 
  65.         ts.add(new Student("lisi06",18)); 
  66.         ts.add(new Student("lisi007",29)); 
  67.         //ts.add(new Student("lisi007",20)); 
  68.         //ts.add(new Student("lisi01",40)); 
  69.  
  70.         Iterator it = ts.iterator(); 
  71.         while(it.hasNext()) 
  72.         { 
  73.             Student stu = (Student)it.next(); 
  74.             System.out.println(stu.getName()+"..."+stu.getAge()); 
  75.         } 
  76.     } 
  77.  
  78. class MyCompare implements Comparator 
  79.     public int compare(Object o1,Object o2) 
  80.     { 
  81.         Student s1 = (Student)o1; 
  82.         Student s2 = (Student)o2; 
  83.  
  84.         int num = s1.getName().compareTo(s2.getName()); 
  85.         if(num==0
  86.         { 
  87.  
  88.             return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); 
  89.             /* 
  90.             if(s1.getAge()>s2.getAge()) 
  91.                 return 1; 
  92.             if(s1.getAge()==s2.getAge()) 
  93.                 return 0; 
  94.             return -1; 
  95.             */ 
  96.         } 
  97.  
  98.          
  99.         return num; 
  100.  
  101.     } 

 

你可能感兴趣的:(学习集合)