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)成员内部类的实例化: 外部类名.内部类 ...
随机推荐
- 1.使用cookie简单实现单点登录流程
1.动手 实现了简单使用多系统,单一位置同时登陆,以及注销 主要认证中心流程代码编写在为在sso-login包下的ViewConreoller和LoginController:各系统的用户名显示是写在 ...
- Springboot整合Jwt实现用户认证
前言 相信大家在进行用户认证中或多或少都要对用户进行认证,当前进行认证的方式有基于session.token等主流方式,但是目前使用最广泛的还是基于JWT的用户认证,特别适用于前后端分离的项目. 本篇 ...
- express获取登录服务器的IP地址
let ip = (req.headers['x-real-ip'] || req.connection.remoteAddress).slice(7);
- Ffmpeg 视频压缩的几个关键参数
Ffmpeg的视频操作官网文档:https://ffmpeg.org/ffmpeg-filters.html#Video-Filters 视频压缩用到的参数主要为以下几个: 文件路径:-i 输入文件的 ...
- 浅谈 LIS 问题的几种做法
LIS 问题也就是最长不下降子序列问题,是一个经典的问题. 做法一 我们发现可以动态规划,设 \(f_i\) 表示前 \(i\) 项包含 \(i\) 的 LIS 长度. 有转移方程: \[f_i=\m ...
- 文章学习:TPRE:分布式门限代理重加密
学习文章:TPRE:分布式门限代理重加密 前言 成方金科新技术实验室与隐语团队合作,构建了"基于国密的分布式门限代理重加密算法TPRE",为用户提供了一种安全.高效.自主可控的数据 ...
- Python tkinter的简单使用,在绘布上播放GIF和图片
Python tkinter的简单使用,在绘布上播放GIF和图片 文章目录 Python tkinter的简单使用,在绘布上播放GIF和图片 前言 一.tkinter 的简单组件以及pack(),gr ...
- JavaWeb 中 Filter过滤器
Filter过滤器 每博一文案 师傅说:人生无坦途,累是必须的背负,看多了,人情人暖,走遍了离合聚散,有时会 在心里对自己说,我想,我是真的累了,小时候有读不完的书,长大后有赚不尽的力. 白天在外要奋 ...
- Grafana系列-统一展示-6-Zabbix仪表板
系列文章 Grafana 系列文章 Notes: 关于 Grafana系列-统一展示-6-Zabbix 数据源, 其实已经在之前的文章: 使用 Grafana 统一监控展示 - 对接 Zabbix 里 ...
- 音视频八股文(8)-- h264 AnnexB
NALU(Network Abstract Layer Unit) ⾳视频编码在流媒体和⽹络领域占有重要地位:流媒体编解码流程⼤致如下图所示: H264简介 H.264从1999年开始,到2003年形 ...