集合分类及常用方式

1.集合分类

集合分为两大类,即单列集合Collection和双列集合Map.其中单列集合分为元素可重复集合List和元素不可重合集合Set

2.关于Collection常用的成员方法,可以简单概括为增1删2查3.

public class Demo06 {
    public static void main(String[] args) {
        List<String> arr = new ArrayList<>();
        //增1
        arr.add("zhangsan");
        arr.add("lisi");
        arr.add("wangwu");
        arr.add("qianliu");
        System.out.println(arr);
        //删2
        //删除指定元素
        boolean result = arr.remove("zhangsan");//有返回值
        System.out.println(result);
        System.out.println(result);
        //删除全部元素
        arr.clear();//无返回值
        System.out.println(arr);
        //查3
        arr.add("zhangsan");
        arr.add("lisi");
        arr.add("wangwu");
        arr.add("qianliu");
        System.out.println(arr);
        //查指定元素
        boolean result2 = arr.contains("zhangsan");
        System.out.println(result2);
        //查集合是否为空
        boolean result3 = arr.isEmpty();
        System.out.println(result3);
        //查集合长度
        int size = arr.size();
        System.out.println(size);
    }
}

3.list集合

3.1.list集合特点

  1. 有序
  2. 有索引
  3. 可重复

3.2.ArrayList底层原理

 

        ArrayList的底层是数组,当new创建一个ArrayList时,底层会创建一个数组长度为0的数据,当我们调用add()方法时,底层会创建一个新的长度为10的数组,该数组名称为elementDate,此外还会创建一个size变量,该变量有两个含义,一是该变量的值永远等于即将要操作的索引,二是该变量值表示数组中有几个元素,也就是集合长度.当数组长度超过10后,底层会重新创建一个长度为15的数组,并将之前的元素从旧数组拷贝到新数组,即ArrayList集合的扩容因子为1.5.

3.3.LinkList底层原理

 

        LinkList的底层是双向链表,当new一个LinkList时,会在堆中开辟一块内存,同时会维护两个变量,这两个变量一个记录头节点的地址值,一个会记录尾节点的地址值,当我们调用add方法时,会在堆中new出一个节点对象,注意在LinkList集合中,每一个节点都是在堆中new出来的,每个节点都有三部分,第一部分记录前一个节点的地址值,第二部分记录自己的值,第三部分会记录下一个节点的地址值.当我们的集合添加第一个元素时,头节点和尾节点都会记录该节点的地址值,紧接着,当添加第二个元素时,尾节点会更改并记录第二个节点的地址值,第一个节点的第三部分会记录第二个节点的地址值,第二个节点的第一部分会记录第一个节点的地址值,以此形成一个链表,也正是因为它是一个链表结构,所以导致它查询慢,增删快.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值