Java容器——List接口
1. 定义
List是Collection的子接口,元素有序并且可以重复,表示线性表。
2. 常用实现类
ArrayList:它为元素提供了下标,可以看作长度可变的数组,为顺序线性表。
LinkedList:通过代价较低的在List中间进行插入和删除操作,提供了优化的顺序访问,但是在随即访问方面相对比较慢,为链表线性表。
3. 方法
boolean add(E e):在列表末添加元素
void add(int index, E e):在指定索引处添加元素,不会覆盖原先元素
boolean addAll(int index, Collection e):在指定索引处放入集合
Object get(int index):获取指定索引的元素
E set(int index, E element):更新指定索引的元素
int indexOf(Object o):获取指定元素在集合中的索引(第一次出现的元素)
int lastIndexOf(Object o):返回此列表中最后出现的元素的索引
Object remove(int index):删除指定索引对应的元素
boolean remove(Object o):删除列表中出现的第一个指定元素
boolean contains(Object o):判断列表是否包含给定元素
List subList(int fromIndex, int toIndex):返回索引为[form,to)的元素集合
Object[] toArray():将列表转为数组
Iterator<E> iterator():列表遍历的迭代器
boolean isEmpty():判断列表是否为空
void clear():删除列表所有元素
int size():返回列表长度
其他方法及其具体说明:https://docs.oracle.com/javase/8/docs/api/
4.示例
import java.util.*;
public class ListFunc {
public static void main(String[] args){
List<String> list1 = new ArrayList<>();
//在列表末尾添加元素
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
// 在列表指定索引处添加元素
list1.add(1,"2");
list1.add(5,"5");
list1.add(6,"6");
System.out.println(list1); // [1, 2, 2, 3, 4, 5, 6]
//删除指定索引的元素
list1.remove(0);
System.out.println(list1); // [2, 2, 3, 4, 5, 6]
//删除指定元素(第一个),要删除的元素可以不在列表中
list1.remove("2");
System.out.println(list1); //[2, 3, 4, 5, 6]
//删除指定索引区域的多个元素
// subList = list1.subList(1,3);
// subList.clear(); // 两者等价,更改subList会改变list1
list1.subList(1,3).clear();
System.out.println(list1); //[2, 5, 6]
//删除所有元素
// list1.clear();
// System.out.println(list1); //[]
// 更改指定索引的元素
list1.set(0,"1");
System.out.println(list1); // [1, 5, 6]
//获取指定索引处元素
String a1 = list1.get(0);
System.out.println(a1); // 1
// 获取指定元素的索引,没有该值返回-1
int index = list1.indexOf("1");
System.out.println(index); // 0
//获取指定索引区域的多个元素
List<String> list2 = list1.subList(0,2);
System.out.println(list2); // [1, 5]
// 判断列表是否有某元素
boolean flag = list2.contains("5");
System.out.println(flag); // true
// list转array
String[] arr2 = list2.toArray(new String[0]);
// String[] arr2 = list2.toArray(new String[list2.size()]); //两者等价
System.out.println(Arrays.toString(arr2)); // [1, 5]
// iterator迭代器
Iterator<String> it = list2.iterator();
while (it.hasNext()){
System.out.print(it.next()+" "); // 1 5
}
// 增强for循环
for(String str: list2){
System.out.print(str+ " "); // 1 5
}
}
}
!!!
Java容器——List接口的更多相关文章
- Java容器Map接口
Map接口容器存放的是key-value对,由于Map是按key索引的,因此 key 是不可重复的,但 value 允许重复. 下面简单介绍一下Map接口的实现,包括HashMap,LinkedHas ...
- Java容器List接口
List接口是Java中经常用到的接口,如果对具体的List实现类的特性不了解的话,可能会导致程序性能的下降,下面从原理上简单的介绍List的具体实现: 可以看到,List继承了Collection接 ...
- Java容器---Collection接口中的共有方法
1.Collection 接口 (1)Collection的超级接口是Iterable (2)Collection常用的子对象有:Map.List.Set.Queue. 右图中实现黑框的ArrayLi ...
- java容器——Collection接口
Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...
- Java容器——Set接口
1.定义 set中不允许放入重复的元素(元素相同时只取一个).它使用equals()方法进行比较,如果返回true,两个对象的HashCode值也应该相等. 2.方法 TreeSet中常用的方法: b ...
- Java容器——Map接口
1.定义 Map用于保存存在映射关系<key, value>的数据.其中key值不能重复(使用equals()方法比较),value值可以重复. 2.常用实现类 HashMap:和Hash ...
- Java容器Set接口
Set接口的实现,可以方便地将指定的类型以集合类型保存在一个变量中.Set是一个不包含重复元素的Collection,更确切地讲,Set 不包含满足 e1.equals(e2) 的元素对,并且最多包含 ...
- Java容器深入浅出之Collection与Iterator接口
Java中用于保存对象的容器,除了数组,就是Collection和Map接口下的容器实现类了,包括用于迭代容器中对象的Iterator接口,构成了Java数据结构主体的集合体系.其中包括: 1. Co ...
- 【Java心得总结七】Java容器下——Map
我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角 ...
随机推荐
- Mysql复制一个数据库到另一个数据库
mysqldump -u root -p source_db > /home/db_bak.sql #导出数据库 123456 #输入数据库密码 扩展: mysqldump -u root -p ...
- 接触node第一步
趁着工作不忙,今天来系统记录一下安装node环境: 1.node下载地址为:https://nodejs.org/en/,检查是否安装成功:如果输出版本号,说明我们安装node环境成功:node -v ...
- 连阿里都在用它处理亿万级数据统计,论其对Java程序员的重要性!
一.了解淘宝Kafka架构 在ActiveMQ.RabbitMQ.RocketMQ.Kafka消息中间件之间,我们为什么要选择Kafka?下面详细介绍一下,2012年9月份我在支付宝做余额宝研发,20 ...
- python基础_格式化输出(%用法和format用法)
目录 %用法 format用法 %用法 1.整数的输出 %o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制 1 >>> print('%o' % 2 ...
- 函数def
函数:把执行一定功能的动作封装到一起>>> def 函数名(形参) 通过一个 函数名(实参) 去调用它,传参来执行功能.动作,输出结果 .定义:def ...
- P4233 射命丸文的笔记
思路 题目要求求的是哈密顿回路的期望数量,实际上就是哈密顿回路的总数/有哈密顿回路的竞赛图的数量 n个点的所有竞赛图中哈密顿回路的总数为 \[ (n-1)! 2^{\frac{n(n-1)}{2}-n ...
- 前端——Bootstrap
Bootstrap介绍 Bootstrap是Twitter开源的基于HTML.CSS.JavaScript的前端框架. 它是为实现快速开发Web应用程序而设计的一套前端工具包. 以前自己写的html的 ...
- 20165306 Exp3 免杀原理与实践
Exp3 免杀原理与实践 一.实践内容概述 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程 2.通过组合应用各种技 ...
- Java中的各种bean对应的意义(VO,PO,BO,QO, DAO,POJO,DTO)
VO(value object) 值对象 通常用于业务层之间的数据传递,用 new 关键字创建,由 GC 回收的,和 PO 一样也是仅仅包含数据而已.但应是抽象出的业务对象 , 可以和表对应 , 也可 ...
- python yaml用法详解
YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互.YAML类似于XML,但是语法比XML简单得多,对于转化成数组或可以hash的数据时是很简单有效的. Py ...