List 接口及其常用方法
List 接口基本介绍
List接口是Collection接口的子接口,其主要特点如下:
List中元素有序,是按照元素的插入顺序进行排序的。每个元素都有一个与之关联的整数型索引(索引从 0 开始),可以根据索引来访问和操作元素,可以使用普通 for 循环遍历。List中可以包含重复的元素。
public class ListTest() {
public static void main(String[] args) {
// List 中元素有序、且可重复
List list = new ArrayList();
list.add("Jack");
list.add("Rose");
list.add("May");
list.add("Luck");
list.add("Jack");
System.out.println("list = " + list); // list = [Jack, Rose, May, Luck, Jack]
// List 支持索引
System.out.println(list.get(2)); // May
}
}
List 接口常用方法
下面的代码以其实现类ArrayList演示List接口的常用方法。
public class ListMethod() {
public static void main(String[] args) {
List list = new ArrayList();
// 添加指定元素到列表末尾
list.add("任盈盈");
list.add("赵敏");
System.out.println("list = " + list); // list = [任盈盈, 赵敏]
// void add(int index, E element)
// 在此列表的指定位置插入指定的元素。
// 将当前位于该位置的元素(如果有)以及后续的元素向右移动(索引加一)。
list.add(1, "周芷若");
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 赵敏]
// boolean addAll(int index, Collection<? extends E> c)
// 将指定集合中的所有元素按指定位置插入到此列表中。
// 将当前位于该位置的元素(如果有)以及后续的元素向右移动(索引增加)。
// 新元素将按照指定集合迭代器返回它们的顺序出现在此列表中。
List list1 = new ArrayList();
list1.add("风清扬");
list1.add("任我行");
list.addAll(2, list1);
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 风清扬, 任我行, 赵敏]
// E get(int index):返回此列表中指定位置的元素。
System.out.println(list.get(1)); // 周芷若
list.add("风清扬");
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 风清扬, 任我行, 赵敏, 风清扬]
// int indexOf(Object o)
// 返回此列表中指定元素第一次出现的索引,如果列表不包含该元素,则返回 -1。
System.out.println(list.indexOf("风清扬")); // 2
// int lastIndexOf(Object o)
// 返回此列表中指定元素最后一次出现的索引,如果列表不包含该元素,则返回 -1。
System.out.println(list.lastIndexOf("风清扬"));// 5
// E remove(int index):移除此列表中指定位置的元素。
// 将任何后续的元素向左移动(其索引减一)。返回从列表中移除的元素。
list.remove(0);
System.out.println("list = " + list); // list = [周芷若, 风清扬, 任我行, 赵敏, 风清扬]
// boolean remove(Object o):从列表中移除指定元素的第一个匹配项(如果存在)。
// 如果列表不包含该元素,则列表保持不变。如果列表发生更改,则返回 true。
list.remove("风清扬");
System.out.println("list = " + list); // list = [周芷若, 任我行, 赵敏, 风清扬]
//E set(int index, E element):用指定元素替换列表中指定位置的元素。
list.set(1, "张无忌");
System.out.println("list = " + list); // list = [周芷若, 张无忌, 赵敏, 风清扬]
// List<E> subList(int fromIndex, int toIndex)
// 返回此列表中从 fromIndex(包括)到 toIndex(不包括)的子集合。
// 如果 fromIndex 和 toIndex 相等,则返回的列表为空。
List list2 = list.subList(1, 3);
System.out.println("list2 = " + list2); // list2 = [张无忌, 赵敏]
// 该方法消除了显式的范围操作的需求(这种操作通常用于数组)。
// 需要对列表的一部分进行的操作都可以通过传递子列表视图而不是把整个列表作为范围,
// 类似的习惯用法也可以用于 indexOf 和 lastIndexOf 方法。
// 例如,以下习惯用法从列表中移除了一系列元素:
System.out.println("list = " + list); // 输出:list = [周芷若, 张无忌, 赵敏, 风清扬]
list.subList(1, 3).clear();
System.out.println("list = " + list);// 输出:list = [周芷若, 风清扬]
}
}
List 接口遍历元素方式
List接口可以使用 Iterator(迭代器)、增强 for 循环和普通 for 循环三种方式来遍历元素,下面的代码以其实现类Vector演示List接口遍历元素的方式。
public class ThroughElements() {
public static void main(String[] args) {
List list = new Vector();
list.add("蛋挞");
list.add("芝士蛋糕");
list.add("提拉米苏");
System.out.println("---使用 Iterator---");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object o = iterator.next();
System.out.println(o);
}
System.out.println("---使用增强 for 循环---");
for (Object o : list) {
System.out.println(o);
}
System.out.println("---使用普通 for 循环---");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
List 接口及其常用方法的更多相关文章
- java中集合类中Collection接口中的Map接口的常用方法熟悉
1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...
- java中集合类中Collection接口中的Set接口的常用方法熟悉
1:Set集合由Set接口和Set接口的实现类组成,Set接口继承了Collection接口,因为包含Collection接口的所有方法. 2:由于Set接口中不允许存在重复值,因此可以使用Set集合 ...
- java中集合类中Collection接口中的List接口的常用方法熟悉
1:集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器. 2:区别集合类和数组.(1)数组的长度是固定的,集合的长度是可变的.(2)数组是用来存放基本数据类型的,集 ...
- 集合概述及Collection接口的常用方法
java集合像是一种容器,可以动态的把多个对象的引用放到容器中 java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组 package com.aff.coll; imp ...
- JAVAEE_Servlet_14_HttpServletRequest接口以及常用方法(一)
HttpServletRequest接口 * javax.servlet.http.HttpServletRequest 接口 * 继承关系 HttpServletRequest---继承---> ...
- Collection接口的常用方法
[添加功能] boolean add(Object obj); //添加一个元素. boolean addAll(Collection c); //添加一个集合的元素(在后面追加). [删除功能] v ...
- Python 接口自动化常用方法封装
#!/usr/bin/env python # -*- coding:utf-8 -*- # ************************************* # @Time : 2019/ ...
- Java集合框架的四个接口
接口 [四个接口 collection list set map 的区别] collection 存储不唯一的无序的数据 list 存储有序的不唯一的数据 set 存储无序的唯一的数据 m ...
- Java集合框架之四大接口、常用实现类
Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...
- java内部类、接口、集合框架、泛型、工具类、实现类
.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...
随机推荐
- IO流中「线程」模型总结
目录 一.基础简介 二.同步阻塞 1.模型图解 2.参考案例 三.同步非阻塞 1.模型图解 2.参考案例 四.异步非阻塞 1.模型图解 2.参考案例 五.Reactor模型 1.模型图解 1.1 Re ...
- SpringBoot @Target、@Retention、@Documented注解简介
jdk1.5起开始提供了4个元注解:@Target.@Retention.@Documented.@Inherited.何谓元注解?就是注解的注解. 在程序开发中,有时候我们需要自定义一个注解,这个自 ...
- 解决svn本身上传没有权限和配置自动更新的钩子
第一步 :建立你的web程序目录和版本库目录 mkdir /data/webwww/project1 svnadmin create /data/svnwww/project1 进入/data/web ...
- 【迭代器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介 迭代器模式(Iterator Pattern),是一种结构型设计模式.给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示. 迭代器模式是与集合共存的,我们只要实现一个 ...
- vulnhub靶场之ADROIT: 1.0.1
准备: 攻击机:虚拟机kali.本机win10. 靶机:Adroit: 1.0.1,下载地址:https://download.vulnhub.com/adroit/Adroit-v1.0.1.ova ...
- 注解:@RequiredArgsConstructor、 @Validated、 @Valid、 @Lazy
1. lombok注解:@RequiredArgsConstructor Spring 依赖注入方式 1.通过 @Autowire.@Resource 等注解注入, 2.通过构造器的方式进行依赖注入. ...
- [双目视差] 立体匹配-SGBM半全局立体匹配算法
立体匹配-SGBM半全局立体匹配算法 一.SGBM算法实现过程 1.预处理 预处理目的是得到图像的梯度信息 Step1:SGBM采用水平Sobel算子,对图像做处理,公式为: Sobel(x,y)=2 ...
- ADB-安装配置
一.只要下载ADB安装包即可 就这4个文件: 备注:如果下载放入到D盘去解压,打开dos窗口那么就要进入到D盘,然后再去执行adb命令,输入adb查看它是否安装成功 二.ADB命令简单使用 查看连接设 ...
- thinkphp常量定义
是已经封装好的系统常量 主要是用在控制器下面的动作当中 这样能很大的提高我们的开发效率主要有下面的一些 手册上面都有的 __ROOT__ 网站的根目录 __APP__ 代表项目 ...
- 2022-02-01:粉刷房子 II。 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价
2022-02-01:粉刷房子 II. 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同. 当然,因为市场上不同颜色油漆的价 ...