zoukankan      html  css  js  c++  java
  • java基础笔记——集合CollectionListSet

      1 package collection_show;
      2 /*
      3  * Collection--List--Set
      4  */
      5 
      6 
      7 /*
      8  *  Collection接口:(顺序和重复)-------------------------------------------------------------
      9  *        子接口List:(都是)元素有序,可重复的集合  ---”动态”数组
     10  *        子接口Set:(都不)元素无序、不可重复的集合 ---类似高中的“集合”
     11  *
     12  
     13  
     14 
     15  *----实例化:        Collection 是接口不能直接实例化,就用子类要实现:向上转型                                  (Set接口没有其他的方法,基本一样)
     16         Collection coll=new ArrayList();
     17  *----方法:
     18 --->    coll.add(E e);添加E类型的对象 e
     19 --->    coll.addAll(coll2);把coll2全部添加到coll中
     20         coll.clear();清楚所有对象
     21         coll.contains( Object o);如果中包含对象o,返回true  (contains包含)
     22         coll.equals( Object o);比较两个对象是否相等
     23         coll.isEmpty();判断是否为空,返回boolean型
     24 --->    coll.remove( Object o); 移除指定元素的单个实例,如果存在的话
     25         coll. removeAll(Collection<?> c);同上
     26         coll. retainAll(Collection<?> c); 和删除相反,保留
     27 --->    coll.size();返回int  元素个数
     28         coll.toArray();返回包含此 collection 中所有元素的数组  返回类型Object[],用 ctrl +1 来显示正确的类型
     29 --->    coll.iterator();返回在此 collection 的元素上进行迭代的迭代器
     30 
     31  
     32  33 
     34  35  *  子接口List:(都是)元素有序,可重复的集合  ---”动态”数组---------------------------------------------
     36  *  
     37  *----实例化:List list=new ArrayList();      ----- ArrayList  LinkList   Vector
     38  *----添加的方法:
     39         list. add(int index, Object element);
     40         list.addAll(int index,Collection coll2);
     41 --->    list.get(int index);
     42 --->    list.indexOf(Object element);   lastIndexOf()
     43 --->    list.remove(int index);
     44         list.set(int index,Object element);
     45 --->    list.subList(int fromIndex,int toIndex);//  包含fromIndex  不包含toIndex下标
     46 
     47  48 
     49 
     50 
     51  *  子接口Set:(都不)元素无序、不可重复的集合 ---类似高中的“集合”------------------------------
     52  *  
     53  *                           ----HashSet  TreeSet
     54  *                           
     55 
     56                             
     57                             
     58                             
     59  *                主要是:    TreeSet     的排序--------按照要求做出排序代码                   
     60  *  -----------------------------自然排序和定制排序-----------------------------
     61  *   ----------------------------自然排序:   Comparable
     62         1、对于单个类型对象----升序排序(就是说添加的对象是int等单个信息的时候)
     63         2、对个属性----
     64             (前提)在    <添加的对象类>   中--实现了java.lang.Comparable接口(包含compareTo()方法)
     65                     必需要override该接口的compareTo()方法,才能使用排序。
     66             (扩展)Comparable接口:
     67                     只有一个方法,int compareTo(Object obj)   表示按照字典顺序对Unicode比较差值
     68                     如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
     69 例子:s1.compareTo(s2)==0,表示两个字符串相等
     70 例子:******************前提:对象的类implements Comparable  实现了接口
     71 @Override
     72     public int compareTo(Object o) {
     73         Person per=null;
     74         if(o instanceof Person){
     75             per=(Person) o;
     76         }
     77         
     78         if(this.name.compareTo(per.name)==0){//先比较name  再比较age
     79                 return this.age-per.age;
     80         }else{
     81             return this.name.compareTo(per.name);
     82         }
     83         //return this.age-per.age;//单独比较age
     84         //return this.name.compareTo(per.name);//单独比较name
     85     }
     86     
     87     
     88     
     89     
     90  *   -------------------定制排序:    Comparator       !!!添加排序类的对象com在TreeSet实例化对象中
     91         在   <测试类>   中----实现java.util.Comparator接口(匿名内部类)
     92             重写方法:   int compare(T o1, T o2)    来比较
     93                   比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
     94 例子:
     95 @Test
     96     public void testTreeSetSort(){
     97     //定制排序    
     98      Comparator    com=new Comparator() { //匿名内部类       //C c=new C(){..};  
     99         @Override
    100         public int compare(Object o1, Object o2) {    //override   compare方法
    101             Student stu1 = null;
    102             Student stu2 = null;
    103             if(o1 instanceof Student){
    104                 stu1=(Student) o1;
    105             }
    106             if(o2 instanceof Student){
    107                 stu2=(Student) o2;
    108             }
    109             if(stu1.getName().compareTo(stu2.getName())==0){     //和自然排序一样
    110                 return stu1.getAge()-stu2.getAge();
    111             }else{
    112                 return stu1.getName().compareTo(stu2.getName());
    113             }
    114         }
    115     };
    116       Set set=new TreeSet(com);                          //这个才是重点区别<>
    117       set.add(new Student("Zhang3",23));
    118       set.add(new Student("Li4",18));
    119       set.add(new Student("Li4",43));
    120       set.add(new Student("Li4",12));
    121       set.add(new Student("Yao5",20));
    122       set.add(new Student("Liu7",34));
    123       System.out.println(set);
    124     }
    125 
    126                         
    127  *                           
    128  *                           
    129  *                           
    130  */
    131 public class Collection_Method {
    132 
    133 }
  • 相关阅读:
    寻找——无限游戏破关(一)
    运维入职梳理文档
    seafile 旧版本升级新版本时python库引用报错
    操作系统-计算进程的物理地址(例题)
    拉取微信公众号视频文件
    洛谷-P3654 First Step (ファーストステップ)
    洛谷-P3392 涂国旗
    洛谷-P1706 全排列问题
    洛谷-P1157 组合的输出
    洛谷-P2241 统计方形(数据加强版)
  • 原文地址:https://www.cnblogs.com/wqsix/p/6774257.html
Copyright © 2011-2022 走看看