集合与数组总结

引入集合

在之前,我们存储数据是使用数组来存储,后来渐渐发现,数组只能存储固定长度的数据,就是得在使用数组之前定义好长度,那么,这就会造成些时候,数据量少,剩余较多存储空间,而有些时候,数组不够用来存放数据.

那么能不能在每次加入一条数据的时候,长度就加1,删除一条数据时,长度就减1呢?可以.

这时候,JDK就提供了java集合,所有的java集合都归于java.util包中.

但是与数组存储的数据不同不同,集合只能用来存储对象.

java集合

族谱如下:

 

 从上面这张图可以很直接的了解到这三大集合的特点

set集合:无序,不重复

list集合:有序,重复

map集合:key唯一,value可以重复

下面细讲:

list集合

list集合:有序,且重复

 我们可以看到,list集合可以添加重复的元素

但是,看到这里有点疑惑了,不是说集合不能添加基本数据类型吗?为什么可以添加数据1,和String类型的"哈哈哈"等等...

在java中,基本数据类型有好几种:byte,short,char,int,long,float,double,那上面添加的这些元素不是基本数据类型吗?为什么不报错?

实际上,添加的不是基本数据类型,添加的这些数据都是Object的对象.

怎么说

 

 左右类型一样,实际上,这些类默认的都是Object类,Object类是所有类的父类,这些类都在隐式继承Object类

所以,不管我们添加什么,最后都会自动转为Object类型的一个对象

那这时候就有一个问题,比如我想取1出来,想要1是int类型,我就定义一个int类型,再用get方法拿出来,这时候就会报错

怎么解决?需要强制转换数据类型就可拿到.

 

list与数组的区别

1.list长度可以变,数组长度固定

2.list存储的是对象,数组可以存基本数据类型和引用类型

3.数组一旦定义,只能存储同一种数据类型;list可以存多种数据类型

4.list按放入的顺序排序;数组按照下标排序

5.list里面的ArrayList.toArray()返回一个数组;Arrays.toList()返回一个集合

 

set集合和map集合后续会更,敬请期待

 

posted @ 2022-11-02 17:02  Tmillion  阅读(98)  评论(0编辑  收藏  举报