Java容器详解(浅层)

目录

1.引入(这篇01是初步,源码原理在后面几篇)

 2.结构​编辑

单例

 双例(函数)

3.collection接口

 4.List接口

(1)特点

(2) 常用方法

 5.ArrayList类

(1)添加元素

 (2)获取元素

(3)删除元素

(4)替换元素 

(5)清空容器

 (6)判断是否为空

(7)判断容器是否包含某个元素 

(8)查找元素第一次出现的位置

 6.将单例集合转化为数组

转化为Object数组

转化为泛型数组

再次提醒:泛型只是

 将单例集合转化Wie指定类型数组

 7.容器的合并操作

8.容器交集操作:

9.容器的差集操作


1.引入(这篇01是初步,源码原理在后面几篇)

 2.结构

 左边是单例集合,右边是双例集合(每个元素要具备Key-Value两个特征)

单例

 双例(函数)

 Key相当于x,Value相当于y,每个x对应唯一y

3.collection接口

 

 4.List接口

(1)特点

(2) 常用方法

 5.ArrayList类

(1)添加元素

  PS:一般创建对象引用,我们采用接口类型定义,有句话说的好,面向对象编程很大程度上是面向接口编程,方便以后代码修改和多态。

所以,下面举个例子

 这里填2就在最后加一个,填1,那就itbz往后移,如果是3,那就报错:索引不能大于长度

 (2)获取元素

然后size()这些哎,懂得都懂

(3)删除元素

 

(4)替换元素 

 返回被替换的元素

(5)清空容器

 (6)判断是否为空

(7)判断容器是否包含某个元素 

(8)查找元素第一次出现的位置

那么查找元素最后一次出现的位置:

 6.将单例集合转化为数组

转化为Object数组

这是抽象方法,每个实现类具体实现都不太一样 

转化为泛型数组

再次提醒:泛型只是

1)避免类型转换时发生错误

2)把运行时出现的异常提前到编译期,

而实际上泛型是一种仅存于编译期间的神奇的东西,

 <string>并不是真正把我们的元素转化为string类型,在运行时刻容器中存的元素还是Object类型

所以下面这样干是会报错的(哪怕你的List本来泛型写的就是string):

 而且强转也只能对某一个元素强制转换,不能对一个集合转换。除非你这个数组本来是string然后通过一些代码变成了object,然后才可以整个数组再转换为string

那怎么办呢?在迭代时强制转换即可:

 将单例集合转化Wie指定类型数组

 这里toArray()里面要传进去一个string[],所以new出来。

但是类型需要参照泛型中的类型

这样就会报错。

 7.容器的合并操作

  List<String> arr = new ArrayList<>();
        arr.add("1");
        arr.add("1");
        arr.add("1");
        arr.add("1");

        ArrayList<String> arr2 = new ArrayList<>();
        arr2.add("1");

        arr.addAll(arr2);

        for (String s : arr) {
            System.out.println(s);
        }

 这些合并是宽松的,你甚至可以把一个set去并list。

8.容器交集操作:

        List<String> arr = new ArrayList<>();
        arr.add("1");
        arr.add("1");
        arr.add("1");
        arr.add("1");

        ArrayList<String> arr2 = new ArrayList<>();
        arr2.add("2");

        System.out.println(arr.retainAll(arr2) );

        for (String s : arr) {
            System.out.println(s);
        }

这里因为arr没有2,所以交集后为空,那么后面的for什么也打印不出来

9.容器的差集操作

就是去掉交集的部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值