计算机语言列表,计算机语言java中得List

相信每个人从小到大都听过集合这个词语!只要是都上过学的小可爱都会听到“集合”这个可怕又熟悉的口号。从小学到高中,基本每天早上都会听到一个口号“集合”当你听到这可怕的口号时候证明你一天的时光正式开始了!

不管是生活中还是在学习中、工作中基本都能听到“集合”这个小朋友。

其实在计算机世界中也会有集合这个概念,而且这个概念还挺流行的。java中的集合分为四类:

第一个是List列表,第二个是Queue队列,第三个是Set集合,第四个是Map映射。

今天所要介绍的List。

List接口存储的数据必须有序的,不唯一(可重复)。啥叫有序和无序呢?唯一与不唯一又有啥区别呢?

所谓的有序就是List下标是有序的,感觉说和没说没啥区别!但注意“下标这个词语”,我们大家都做过早操和排过队,有第一排,第二排,第一列,第二列这种类似的区分。而List下标类似于这样子,第一个是0,第二个是1,以此来递增上去,这就是有序的。

那唯一和不唯一呢?这个更好理解了。唯一性就是独一无二的存在,不唯一意指:意义上是一样的存在,可能出现两个相同的东西。这就是唯一性与不唯一性。

List接口表示有序的集合,序列,提供了索引index,可以通过index对集合进行增删改查。

那集合如何实现呢?相当于如果你把一大群学生如何让他们听从你的安排呢?如果是你是小学生班主任的话,你的鞭子相当于一个ArrayList实现类,你用这个鞭子实现学生排成一排!

4223bc1de6c196632667e88121f81ed5.png

List list=new ArrayList();

list.add("小明");

list.add("大明");

list.add("老杨");

System.out.println(list.toString());

结果:[小明, 大明, 老杨]。

ArrayList是List接口的实现类,底层数据结构是数组的可变有序列表。

ArrayList是一个包装类,内部封装了一个数组Object[ ] elementData,默认容量是10个空间,当使用add()方法时,它第一件事是确认容量够不够,如不够,则按照 newCapacity =oldCapacity + oldCapacity/2的规则拓容。

如果你想自己手动拓容的时候,可适当使用ensureCapacity(minCapacity)和trimToSize来提供拓容性能和节省拓容空年间。

ArrayList 是线程不安全的可变数组版本。在多线程环境下使用要注意。

我们可通过Collections.synchronizedList(newArrayList(…));操作得到一个线程安全的ArrayList。

ArrayList中的迭代器在List集合结果变化后,我们调用迭代器中的方法时会快速抛出ConcurrentModificationException异常通知程序,以免造成损失。

0dc4620258f78d087b2ced67b02ea07e.png

List list=new Vector();

Vector()也是List的实现类,底层数结构也是数组的可变有序列表,但它是线程安全的。因为大部分方法都加了“synchronized”关键字以保证线程环境下的线程安全问题。但有时候我们还是选择ArrayList这个实现类多一点,因为ArrayList效率要比Vector高。

4c31dc526abe907acd357e9b54d105c4.png

LinkedList是List接口的实现类,底层数据结构是链表。LinkedList线程不安全,它和ArrayList一样,但它的查询效率低。

何为链表?你可以想象成为双头蛇,它类似于双头蛇!

结语:List属于集合,和它一样是集合的还有三个。Set,Map,Queue。

List有几个实现类:

ArrayList实现类,底层数据结构使数组结构,查询速度快,增删改慢。

LinkList实现类,底层使用链表结构,增删快,查询慢。

Vector实现类:线程安全,线程同步。效率比ArrayList低。

ad33c500b5de8f274e4bc45418263caa.png

举报/反馈

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值