计算机语言列表,计算机语言java中得List
相信每个人从小到大都听过集合这个词语!只要是都上过学的小可爱都会听到“集合”这个可怕又熟悉的口号。从小学到高中,基本每天早上都会听到一个口号“集合”当你听到这可怕的口号时候证明你一天的时光正式开始了!
不管是生活中还是在学习中、工作中基本都能听到“集合”这个小朋友。
其实在计算机世界中也会有集合这个概念,而且这个概念还挺流行的。java中的集合分为四类:
第一个是List列表,第二个是Queue队列,第三个是Set集合,第四个是Map映射。
今天所要介绍的List。
List接口存储的数据必须有序的,不唯一(可重复)。啥叫有序和无序呢?唯一与不唯一又有啥区别呢?
所谓的有序就是List下标是有序的,感觉说和没说没啥区别!但注意“下标这个词语”,我们大家都做过早操和排过队,有第一排,第二排,第一列,第二列这种类似的区分。而List下标类似于这样子,第一个是0,第二个是1,以此来递增上去,这就是有序的。
那唯一和不唯一呢?这个更好理解了。唯一性就是独一无二的存在,不唯一意指:意义上是一样的存在,可能出现两个相同的东西。这就是唯一性与不唯一性。
List接口表示有序的集合,序列,提供了索引index,可以通过index对集合进行增删改查。
那集合如何实现呢?相当于如果你把一大群学生如何让他们听从你的安排呢?如果是你是小学生班主任的话,你的鞭子相当于一个ArrayList实现类,你用这个鞭子实现学生排成一排!
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异常通知程序,以免造成损失。
List list=new Vector();
Vector()也是List的实现类,底层数结构也是数组的可变有序列表,但它是线程安全的。因为大部分方法都加了“synchronized”关键字以保证线程环境下的线程安全问题。但有时候我们还是选择ArrayList这个实现类多一点,因为ArrayList效率要比Vector高。
LinkedList是List接口的实现类,底层数据结构是链表。LinkedList线程不安全,它和ArrayList一样,但它的查询效率低。
何为链表?你可以想象成为双头蛇,它类似于双头蛇!
结语:List属于集合,和它一样是集合的还有三个。Set,Map,Queue。
List有几个实现类:
ArrayList实现类,底层数据结构使数组结构,查询速度快,增删改慢。
LinkList实现类,底层使用链表结构,增删快,查询慢。
Vector实现类:线程安全,线程同步。效率比ArrayList低。
举报/反馈
计算机语言列表,计算机语言java中得List相关推荐
- 检查两个列表在Java中是否相等
介绍: Java中的列表是按自然顺序排列的. 因此,如果两个列表包含相同顺序的完全相同的元素,则认为它们是相等的. 在本教程中,我们将看到如何在Java中比较两个列表是否相等. 我们还将介绍仅比较两个 ...
- java 合并两个列表_如何在Java中合并两个列表?
java 合并两个列表 Merging two lists in Java is often a useful operation. These lists can be ArrayLists or ...
- java 实现内存数据表_数据结构 Java中的内存
根据线性表的实际存储方式,分为两种实现模型: 顺序表 ,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示. 链表 ,将元素存放在通过链接构造起来的一系列存储块中. 一.顺 ...
- java 侵入性_侵入式列表实现Java?
我不知道任何现有的实现(不,我不认为普通的Java集合是侵入性的). 这可能是因为这个列表在Java中的唯一主要优点是当您已经有要删除的元素(并且在该位置没有迭代器)时,将快速的remove()调用. ...
- Java中的循环链表
与链表相比,循环链表略有不同.在循环链表中,最后一个节点指向第一个节点,从而完成一整圈节点.换句话说,我们也可以说在这个链表中,最后一个元素不是空的.在这种类型的链表中,任何节点都可以作为起点.这意味 ...
- Java编程哪些书值得推荐及计算机语言java中得List[图]
一.Java编程哪些书值得推荐? 书籍是人类进步的阶梯,在互联网不算发达的十年前(特指09年之前),学编程是要靠各种编程相关的书滴,大部分时间都必须沉迷于图书馆才能学好.现如今不同了,在线教育满天飞的 ...
- 计算机语言发展史及Java语言简介
计算机语言发展史及Java语言简介 一 计算机语言发展史 1第一代语言 第一代语言或者机器语言是一种低级的面向计算机的程序设计语言,使用0和1表示各种指令. 2 第二代语言 汇编语言. 3 第三 ...
- Java中迭代列表中数据时几种循环写法的效率比较
Java中经常会用到迭代列表数据的情况,本文针对几种常用的写法进行效率比较.虽然网上已经有了类似的文章,但是对他们的结论并不认同. 常见的实现方法: 1.for循环: [java] view plai ...
- java中怎样克隆,如何在Java中克隆列表?
要克隆Java中的列表,最简单的方法是使用ArrayList.clone()方法- 示例import java.util.ArrayList; public class Demo { public s ...
最新文章
- nofollow标签_nofollow标签在网站中的运用
- GenXus学习笔记——Transaction的建立
- linux 内核io操作,关于Linux内核中的异步IO的使用
- 打线上包 测试_vue-cli项目分别打测试包(test)和生产包(prod)
- C++中sort排序之自定义排序cmp(入门)
- MySQL 数据库性能调优
- 网络安全审计系统产品竞品分析
- 洋流[Theocean flow]介绍----科普知识
- 缺少空格:The JSP specification requires that an attribute name is preceded by whitespace
- 全国25省市“智慧路灯”项目大汇总!
- 计算机网络【奈氏准则和香农定理】
- 爬取王者荣耀皮肤-点券领取
- vlookup(精确查找、区间查找、反向查找、多条件查找)
- URP shader 学习笔记
- SQL Server基础操作(此随笔仅作为本人学习进度记录三)
- 2022,itbird的年终总结报告
- python parser参数nargs=‘+‘涵义
- 如何设置虚拟机为静态IP
- 当当网创始人李国庆宣布离开当当,投身区块链再创业
- okl4 linux,Ubuntu下用skyeye运行OKL4
热门文章
- Python内置函数之 range()
- 《深度学习笔记》——深度神经网络的调试笔记
- 使用OpenCV和NumPy处理图像数据时,出现显示异常,图片经常出现空白
- Java代码优化技巧
- html元素不可见的三种方式
- 鼠标右键添加新建类型
- javax.mail.MessagingException: 553 authentication is required
- 简单干净的C#方法设计案例:SFCUI.AjaxValue()之二
- 通过phoenix导入数据到hbase出错记录
- SQL存储过程跨服务器访问