List子接口
简介
特点: 有序, 有下标, 元素可以重复
常用方法
boolean |
add(E e) 将指定的元素追加到此列表的末尾(可选操作)。 |
|---|---|
void |
add(int index, E element) 将指定的元素插入此列表中的指定位置(可选操作)。 |
boolean |
addAll(Collection<? extends E> c) 按指定集合的迭代器(可选操作)返回的顺序将指定集合中的所有元素附加到此列表的末尾。 |
boolean |
addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。 |
void |
clear() 从此列表中删除所有元素(可选操作)。 |
boolean |
contains(Object o) 如果此列表包含指定的元素,则返回 true 。 |
boolean |
containsAll(Collection<?> c) 如果此列表包含指定 集合的所有元素,则返回true。 |
boolean |
equals(Object o) 将指定的对象与此列表进行比较以获得相等性。 |
E |
get(int index) 返回此列表中指定位置的元素。 |
int |
hashCode() 返回此列表的哈希码值。 |
int |
indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。 |
boolean |
isEmpty() 如果此列表不包含元素,则返回 true 。 |
Iterator<E> |
iterator() 以正确的顺序返回该列表中的元素的迭代器。 |
int |
lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 |
ListIterator<E> |
listIterator() 返回列表中的列表迭代器(按适当的顺序)。 |
ListIterator<E> |
listIterator(int index) 从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。 |
E |
remove(int index) 删除该列表中指定位置的元素(可选操作)。 |
boolean |
remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)(可选操作)。 |
boolean |
removeAll(Collection<?> c) 从此列表中删除包含在指定集合中的所有元素(可选操作)。 |
default void |
replaceAll(UnaryOperator<E> operator) 将该列表的每个元素替换为将该运算符应用于该元素的结果。 |
boolean |
retainAll(Collection<?> c) 仅保留此列表中包含在指定集合中的元素(可选操作)。 |
E |
set(int index, E element) 用指定的元素(可选操作)替换此列表中指定位置的元素。 |
int |
size() 返回此列表中的元素数。 |
default void |
sort(Comparator<? super E> c) 使用随附的 Comparator排序此列表来比较元素。 |
default Spliterator<E> |
spliterator() 在此列表中的元素上创建一个Spliterator 。 |
List<E> |
subList(int fromIndex, int toIndex) 返回此列表中指定的 fromIndex (含)和 toIndex之间的视图。 |
Object[] |
toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 |
<T> T[] |
toArray(T[] a) 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。 |
ListItertor 的一些方法
| Modifier and Type | Method and Description |
|---|---|
void |
add(E e) 将指定的元素插入列表(可选操作)。 |
boolean |
hasNext() 返回 true如果遍历正向列表,列表迭代器有多个元素。 |
boolean |
hasPrevious() 返回 true如果遍历反向列表,列表迭代器有多个元素。 |
E |
next() 返回列表中的下一个元素,并且前进光标位置。 |
int |
nextIndex() 返回随后调用 next()返回的元素的索引。 |
E |
previous() 返回列表中的上一个元素,并向后移动光标位置。 |
int |
previousIndex() 返回由后续调用 previous()返回的元素的索引。 |
void |
remove() 从列表中删除由 next()或 previous()返回的最后一个元素(可选操作)。 |
void |
set(E e) 用 指定的元素替换由 next()或 previous()返回的最后一个元素(可选操作)。 |
方法演示
引用类型的 List
package 集合;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class ListDemo {
public static void main(String[] args) {
List list = new ArrayList();
//增加
list.add("苹果");
list.add("小米");
list.add("华为");
list.add(1, "三星");
System.out.println(list);
//包含
System.out.println(list.contains("华为"));
System.out.println(list.contains("vivo"));
//获取指定元素和元素位置
System.out.println(list.get(1));
System.out.println(list.indexOf("华为"));
System.out.println(list.indexOf("vivo")); //若此元素不存在则返回-1
System.out.println(list.isEmpty());
//for遍历
System.out.println("-------for循环遍历--------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//增强for
System.out.println("-----增强for-------");
for (Object object : list) {
System.out.println(object);
}
//普通迭代器
System.out.println("-------Itertor迭代---------");
Iterator its = list.iterator();
while(its.hasNext()) {
System.out.println(its.next());
}
//列表迭代器
System.out.println("------ListItertor顺序迭代");
ListIterator Lit = list.listIterator();
while(Lit.hasNext()) {
System.out.println(Lit.nextIndex() + ":" + Lit.next());
}
Lit.set("Vivo");
//注:ListItertor有指针,随next()或者previous而变化,因此若想要逆序遍历需首先顺序遍历
System.out.println("-------LIstItertor倒序遍历----------");
while(Lit.hasPrevious()) {
System.out.println(Lit.previousIndex() + ":" + Lit.previous());
}
//子集合的创建
List li = list.subList(1, 3);
System.out.println(li);
//删除元素
System.out.println("删除元素");
list.remove(0);
System.out.println(list);
list.remove("小米");
System.out.println(list);
}
}
基本类型的 List
注意:所有的集合只能存放引用类型的数据,对于基本类型需要装箱操作
package 集合;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class NumList {
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add(20);
list.add(30);
list.add(40);
System.out.println(list);
//元素的获取
System.out.println(list.get(1));
//元素的遍历
System.out.println("---------元素的遍历---------");
ListIterator it = list.listIterator();
while(it.hasNext()) {
System.out.println(it.next());
}
//返回元素的位置
System.out.println("-----返回元素位置------");
System.out.println(list.indexOf(10));
//删除指定元素,和引用类型的删除不同
System.out.println(list);
// list.remove(10); //错误做法
list.remove(new Integer(10));
System.out.println(list);
}
}
List的实现类
ArrayList
- 数组结构实现,查询快,增删慢
- 运行效率高,线程不安全
LinkedList
- 链表结构实现,查询慢,增删快
Vector
- 数组结构实现,查询快,增删慢
- 运行效率低,线程安全
List子接口的更多相关文章
- java集合_collection子接口 list的特有方法,ArrayList类体现
/* Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引. |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步. ...
- Collection子接口(List/Set/Queue/SortedSet)
Collection基本的子接口: List:能够存放反复内容 Set:不能存放反复内容,全部反复的内容靠hashCode()和equals()两个方法区分 Queue:队列接口 SortedSet: ...
- 基于三层交换机和基于路由子接口的vlan间路由
1:通过三层交换机实现vlan间的通信:为三层交换机创建vlan,设置交换机的两个SVI,并配置IP地址. (在二层交换机上只能配置一个SVI端口,用来实现交换机交换机远程管理,在三层交换机上可以配置 ...
- 16、Collection接口及其子接口Set和List(常用类LinkedList,ArrayList,Vector和Stack)
16.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同 ...
- 背水一战 Windows 10 (122) - 其它: 通过 Windows.System.Profile 命名空间下的类获取信息, 查找指定类或接口的所在程序集的所有子类和子接口
[源码下载] 背水一战 Windows 10 (122) - 其它: 通过 Windows.System.Profile 命名空间下的类获取信息, 查找指定类或接口的所在程序集的所有子类和子接口 作者 ...
- Spring-IOC 扩展点 BeanFactoryPostProcessor及其子接口解析
BeanFactoryPostProcessor 接口的英文描述: Allows for custom modification of an application context's bean de ...
- Java基础-Collection子接口之Set接口
Java基础-Collection子接口之Set接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学习Collection接口时,记得Collection中可以存放重复元素,也可 ...
- Java基础-Collection子接口之List接口
Java基础-Collection子接口之List接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们掌握了Collection接口的使用后,再来看看Collection接口中 ...
- 【vlan-trunk和802.1q子接口配置】
根据项目需求,搭建好拓扑图如下: 配置sw1的g1/0/3的/trunk,把g1/0/1和g1/0/2分别加入vlan 10 和 vlan 20 配置sw1的g1/0/3的/trunk,把g1/0/1 ...
- 如何得到一个接口所有的实现类(及子接口)?例如:Eclipse IDE
(一)Eclipse IDE的做法 它会解析所有的Java文件.Class文件. 技巧:在Eclipse中,选中Interface,按下F4,就可以查看到所有的实现类及子接口. 例如: (二)自己怎么 ...
随机推荐
- IDE Goland DEBUG报错(could not launch process: decoding dwarf section info at offset 0x0: too short)
背景: 在升级GO版本到1.11后发现Goland的Debug报错,如下:could not launch process: decoding dwarf section info at offset ...
- 一篇文章讲明白vue3的script setup,拥抱组合式API!
引言 vue3除了Composition API是一个亮点之外,尤大大又给我们带来了一个全新的玩意 -- script setup,对于setup大家相信都不陌生,而对于script setup有些同 ...
- 【九度OJ】题目1017:还是畅通工程 解题报告
[九度OJ]题目1017:还是畅通工程 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1017 题目描述: 某省调查乡村交通 ...
- DEFENSE-GAN: PROTECTING CLASSIFIERS AGAINST ADVERSARIAL ATTACKS USING GENERATIVE MODELS
目录 概 主要内容 Samangouei P, Kabkab M, Chellappa R, et al. Defense-GAN: Protecting Classifiers Against Ad ...
- Kernel PCA and De-Noisingin Feature Spaces
目录 引 主要内容 Kernel PCA and De-Noisingin Feature Spaces 引 kernel PCA通过\(k(x,y)\)隐式地将样本由输入空间映射到高维空间\(F\) ...
- 剖析Defi之Uinswap_0
Uniswap是什么,不需要讲了吧.YYDS(永远嘀神) 介绍几个概念: 恒定乘积算法:可以简单看作X * Y = K,这里K(乘积)保持不变,所以叫恒定乘积算法,该函数是一个反曲线. 自动流动性协议 ...
- Reflection 基础知识(一)
反射机制的定义 反射通常指在程序在运行时能够获取自身的信息. 静态语言反射 在java中使用反射的一个例子 Class<?> clazz = Class.forName("com ...
- 使用 IE 或Chrome等浏览器,通过网络抓包的形式,查看发送请求时的网络
要求: 使用 IE 或Chrome等浏览器,通过网络抓包的形式,查看发送请求时的网络 实现步骤: 1.打开 IE 浏览器,选择"开发者工具",切换到"网络"标签 ...
- http协议的状态码400,401,403,404,500,502,503,301,302等常见网页错误代码
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101(切换协议) 请求者已要求 ...
- 【Redhat系列linux防火墙工具】firewalld与iptables防火墙工具的激烈碰撞
前言 iptables与firewalld防火墙管理工具在linux发行版Redhat7系列使用较为广泛. UFW则是在linux发行版Ubuntu下进行管理防火墙的一款管理工具. 在选用防火墙工具的 ...