List
发布日期:2021-06-27 12:55:56 浏览次数:40 分类:技术文章

本文共 3096 字,大约阅读时间需要 10 分钟。

文章目录

List接口

List 是Collection 的子接口,里面的所有内容都是允许重复的。

List接口的定义:

public interface
extends Collection

List接口的方法如下:

在这里插入图片描述
而List接口有如下几个实现类:

  • ArrayList
  • Vector
  • LinkedList

ArrayList

ArrayList 是List 接口的子类,此类的定义如下:

public class ArrayList
extends AbstractList
implements List
,RandomAccess,Cloneable,Serializable

该类继承了AbstractList类。而AbstractList是List接口的子类。AbstractList是个抽象类。

ArrayList使用的是数组结构,这个数组是Object类型的,默认容量大小为10

**特点:**对于增加删除操作较慢,查找较快。

构造器

ArrayList()	构造一个初始容量为10的空列表ArrayList(int initialCapacity)	构造具有只当初始容量的空列表ArrayList(Collection
c) 按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表
package Demo2;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class Demo1 {
public static void main(String[] args) {
//设置长度为15 ArrayList
data = new ArrayList<>(15); //添加元素 for (int i = 0; i < 10; i++) {
data.add(i); } //将ArrayList实例的容量设置为集合的当前大小,最小化ArrayList的容量 data.trimToSize(); System.out.println("原始数组:" + data); Collections.reverse(data); System.out.println("反转数组:" + data); //data.sort(Comparator.naturalOrder()); Collections.sort(data); System.out.println("升序数组:" + data); //定制排序用法 Collections.sort(data, new Comparator
() {
@Override public int compare(Integer o1, Integer o2) {
//o2-o1>0,如果指定数大于参数,返回1;指定数小于参数,返回-1;相等,返回0. return o2.compareTo(o1); } }); System.out.println("定制后的排序数组"+data); data.remove(9); System.out.println(data); }}

Vector

Vector也是List接口的子类。

public class Vector
extends AbstractList
implements List
,RandomAcces,Cloneable,Serializable

构造方法:

Vector()	构造一个空向量,使其内部数据数组的大小为10,其标准容量增量为零Vector(int initialCapacity)	构造一个具有初始容量且容量增量为零的空向量Vector(int initialCapacity,int capacityIncrement)	构造具有指定初始容量及容量增量的空向量Vector(Collection
按照集合的迭代器返回的顺序构造一个包含指定集合元素的向量
public class VectorDemo{
public static void main(String[] ages){
//利用构造方法创建 Vector v = new Vector(4); //利用add方法添加 v.add("Test0"); v.add("Test1"); //删除元素 //根据索引删除 v.remove(1); //根据内容删除 v.remove("Test0"); //获得存取的元素的个数 int size = v.size(); System.out.println("size="+size); //遍历 for(int i =0;i

Vector与ArrayList的区别:

区别 ArrayList Vector
时间 JDK1.2后推出 JDK1.0时就已定义
性能 性能较高,采用异步处理 性能较低,采用同步处理
输出 支持Iterator、ListIterator输出 除了支持Iterator、ListIterator输出,还支持Enumeration输出

LinkedList

LinkedList使用双向链表结构

**特点:**对于增加删除快,查找慢。

LinkedList增加了在首部或尾部增删以及获取的方法操作:

public class Demo{
public static void main(String[] args){
LinkedList
data = new LinkedList<>(); //存入首部,类似于栈 data.addFirst(100); data.addFirst(200); Integer i = data.removeFirst(); System.out.println(i); }}//最后输出为200

可以灵活运用从首部或尾部增删取的操作,来实现单端对列或双端队列的操作

而linkedList直接可以利用pushpop方法模拟栈

public class Demo{
public static void main(String[] args){
LinkedList
data = new LinkedList<>(); //压栈 data.push(100); data.push(200); //弹栈 Integer i = data.pop; System.out.println(i); }}

转载地址:https://blog.csdn.net/weixin_43454088/article/details/116379139 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Comparable和Comparator的异同
下一篇:Set

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月04日 11时55分56秒