美文网首页Java
Java19-4 collection总结 与练习

Java19-4 collection总结 与练习

作者: 第二套广播体操 | 来源:发表于2019-01-14 14:47 被阅读0次

    结合对象常用的子类对象存在规律
    前缀为数据结构名 后缀为所属体系名
    ArrayList:数组结构 看到数组 查询快 看到list 就知道可以重复。可以增删改查
    LinkedList:链表结构 增删快
    存入set 的每个元素都必须是唯一的,必须定义equals()方法以确保唯一性
    HashSet:哈希表结构 查询速度更快(就要想到必须覆盖equals和hascode) 不保证有序 看到set 知道不可重复
    LinkedHashSet:链表+哈希表 可以实现有序
    TreeSet:二叉树 可以排序 一种是自然排序comparable 一种是比较器排序comparator


    foreach 增强for循环 只能遍历集合元素和数组元素
    for(元素类型变量:集合or数组)

    package it.collection.set.test;
    /*对多个字符串按照长度排序 由短到长(不重复)
    * 1 多个字符串 需要容器储存
    * 2 选择容器 不重复所以选set
    * 3 需要排序 选择TreeSet 不是自然排序 自定义比较器*/
    /*对多个字符串按照长度排序 由短到长(重复)
      1 容器 数组
    * */
    
    import it.collection.Comparator.ComparatorByLength;
    
    import java.util.Set;
    import java.util.TreeSet;
    
    public class TreeSet_Test2 {
        public static void main(String[] args) {
            Set set=new TreeSet(new ComparatorByLength());
            set.add("haha");
            set.add("hahaw");
            set.add("aasda");
            set.add("zccv");
            set.add("hxzvzv");
            set.add("haha");
            for (Object o :set
                    ) {
                System.out.println(o);
            }
            System.out.println("---------------------");
            sortSringByLength();
        }
        public static void sortSringByLength(){
            String[] strings={"haha","hehe","asdas","zccxqasd","haha"};
            ComparatorByLength cBL=new ComparatorByLength();
            for (int i = 0; i <strings.length-1; i++) {
                for (int j = i+1; j <strings.length; j++) {
                    if (cBL.compare(strings[i],strings[j])>0)
                        swap(strings,i,j);
                }
            }
            for (String s:strings
                 ) {
                System.out.println(s);
    
            }
        }
        private static void swap(String[] strings, int i, int j) {
            String s=strings[i];
            strings[i]=strings[j];
            strings[j]=s;
        }
    }
    

    比较器

    public class ComparatorByLength implements Comparator {
        @Override
        public int compare(Object o1, Object o2) {
           String s1= (String) o1;
           String s2=(String)o2;
           int temp=s1.length()-s2.length();
    //       if (temp>0)return -1; 长  返回-1的意识是s1小于s2 实际上s1比s2长 做的目的 实现从大到小
    //       (-1放左面 1放右边 0相等)
    //      if (temp<0)return 1;同时作用 比小的返回1
            return temp==0? s1.compareTo(s2):temp;
        }
    }
    

    相关文章

      网友评论

        本文标题:Java19-4 collection总结 与练习

        本文链接:https://www.haomeiwen.com/subject/fvuddqtx.html