list、set、map

List:有序,按对象进⼊的顺序保存对象,可重复,允许多个Null元素对象,可以使⽤Iterator取出所有元素,在逐⼀遍历,还可以使⽤get(int index)获取指定下标的元素

Set:⽆序,不可重复,最多允许有⼀个Null元素对象,取元素时只能⽤Iterator接⼝取得所有元素,在逐⼀遍历各个元素

Map: 无序,虽然是数组 + 链表的形式,但数组存放的顺序是hash值的顺序,而不是插入的顺序

删除list中所有的“a”

ArrayList arrayList = new ArrayList();
arrayList.add("a");
arrayList.add("b");
arrayList.add("a");
arrayList.add("a");
// 删除a 注意:需要倒着删
for(int i = arrayList.size()-1;i>=0;i--){
    if(arrayList.get(i).equals("a")){
        arrayList.remove(i);
    }
}

ArrayList初始容量10,扩容1.5倍

HashMap 初始化大小是 16 ,扩容因子默认0.75(可以指定初始化大小,和扩容因子)

ArrayList

Collections.sort(arratList) 升序排序 // 实现compareble接口重写conpare()方法

去重 Hashset(无序)、LinkedHashSet(有序)

LinkedHashSet linkedHashSet = new LinkedHashSet(arrayList);
ArrayList arrayList1 = new ArrayList(linkedHashSet);

for判断remove()/contain()

HashMap

1. jdk8之后数组+链表+红黑树,在第一次调用put()时创建数组。

2. hashmap的put()插入hash表分为三种情况:(对键key进行hashcode()得到hash值(int))

  ① hash值不同 数组++

  ② hash值相同 键内容equls()不同 链表++

  ③ hash值相同 键内容equls()相同 覆盖原键-> value

3. 当链表长度大于8并且数组长度大于64转为红黑树。

posted @ 2022-06-16 10:51  LoveDonkey  阅读(21)  评论(0编辑  收藏  举报