day11:ArrayList/LinkedList/Collection/TreeSet/HashSet

文章详细介绍了Java中的ArrayList和LinkedList的特点、构造方法以及操作效率,特别提到了ArrayList查询快但增删慢,而LinkedList反之。同时,解释了Collections工具类在排序和打乱集合顺序上的方法。此外,讨论了Set接口的实现类,包括TreeSet和HashSet,强调了元素唯一性的保证机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ArrayList
    java.util.ArrayList
    特点
        有序 有索引 元素可重复
底层数据结构是数组
查询快 增删慢
    构造方法
        public ArrayList() 构造一个初始容量为10的空列表
public ArrayList(int initialCapacity)  创建一个指定初始容量的列表
public  ArrayList(Collection<? extends E> c) 创建一个ArrayList 存储Collection<? extends E> c集合中的元素

LinkedList
    java.util.LinkedList
    特点
        有序  有索引 元素可重复
底层数据结构是链表
查询慢 增删快
    特有方法
        -  public void addFirst(E e):将指定元素插入此列表的开头。
- public void addLast(E e):将指定元素添加到此列表的结尾。
- public E getFirst():返回此列表的第一个元素。
- public E getLast():返回此列表的最后一个元素。
- public E removeFirst():移除并返回此列表的第一个元素。
- public E removeLast():移除并返回此列表的最后一个元素。
- public E pop():从此列表所表示的堆栈处弹出一个元素。
- public void push(E e):将元素推入此列表所表示的堆栈。(压栈)

Collections
    java.util.Collections 集合工具类
    构造方法
        私有  所有方法静态
            public static void sort(List list,Comparator c) 传入比较器 指定比较规则
                Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });
            匿名内部类
              作用:临时创建一个类子类对象的快捷方式
              格式
                  new 父类/接口(){
                        重写方法
                  }
                Comparator<Integer> c =  new Comparator<Integer>(){

            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1; //降序
            }
        };
    方法
        public static void shuffle(List list) 打乱集合中元素的顺序
public static void sort(List list) 对集合中元素进行排序 自然排序  集合中的元素 必须实现自然排序接口 Comparable 重写compareTo方法
            Collections.sort(list);升序
            Collections.shuffle(list);打乱

Set
     java.util.Set
        特点
            元素唯一
        方法
            方法和Collection一致
    常用实现类
        TreeSet
                 排序  唯一
            java.util.TreeSet
            构造方法
                public TreeSet() 空参构造  
集合中的元素必须实现自然排序接口Comparable接口 重写CompareTo方法
如果CompareTo方法 返回值为0  说明两个元素相同 不添加到集合
                public TreeSet(Comparator c) 带参构造 
需要传入一个比较器指定比较规则 如果传入比较器 自然排序不生效
此时 Set集合中的元素可以不实现Comparable接口
如果重写的compare方法 返回0 说明两个元素相同   不添加到集合
             TreeSet集合 如何保证元素唯一
                 1.如果实现Comparable接口  compareTo方法 返回0 说明元素相同 添加失败
                2.如果使用比较器   compare方法 返回0  说明元素相同 添加失败
        HashSet
                 无序 唯一
            java.util.HashSet
                存储自定义类型 如果想保证元素唯一 必须重写hashCode和equals方法
            先比较对象的hashCode
                        不同 添加到集合
                        相同 继续比较equals
                                 不同  添加到集合
                                 相同 不添加
        LinkedHashSet
                  有序 唯一
2.都需要熟记

3.充实开心

4.3人打Pook,拿到的拍是拍好顺序的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值