Java集合框架之Collection接口

本文深入探讨了Java集合框架中的Collection接口,它是所有集合类的基础,提供了基本的操作如add()和iterator()。Collection接口的子接口List是一个有序集合,允许重复元素,常用实现包括ArrayList和LinkedList。ArrayList适用于随机访问,插入和删除效率较低,而LinkedList则反之。此外,文章还对比分析了ArrayList和LinkedList在不同操作场景下的性能差异,并介绍了线程安全的Vector和后进先出的Stack。最后,简单概述了Set接口及其主要实现类HashSet和TreeSet的特点。
摘要由CSDN通过智能技术生成

Collection接口

1.首先,我们要对Collection接口有以下几点认知:
在Java类库中,集合类的基本接口就是Collection接口,它包含了集合的基本操作和属性,是高度抽象出来的。 同时,Collection也是单个集合保存的最大父接口。另外,Collection中有一个iterator()函数,它的作用是返回一个Iterator接口。通常,我们通过Iterator迭代器来遍历集合。

2.定义:
public interface Collection extends Iterable
3.Collecntion接口的基本方法:
在这里插入图片描述

其中使用最频繁的是add()、iterator()方法
Iterator iterator():用于访问集合中每个元素的迭代器
4.Collection接口的定义:
在这里插入图片描述
其子接口均有add()、iterator()方法

5.List接口
(1)定义:List接口是我们进行集合处理时优先考虑的。List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。
(2) 特点:
a.List接口继承于Collection接口,它可以定义一个允许重复的有序集合。因为List中的元素是有序的,所以我们可以通过使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
b.List接口为Collection直接接口。List所代表的是有序的Collection,即它用某种特定的插入顺序来维护元素顺序。用户可以对列表中每个元素的插入位置进行精确地控制,同时可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
c.在List接口中,通过ListIterator()返回一个ListIterator对象
d.实现List接口的集合主要有:ArrayList、LinkedList、Vector、Stack。
(2)与Collection接口的不同点:a.扩充了两个新的重要方法
public E get(int index); -根据索引取得保存的数据
public E set(int index,E element);–修改数据
b.
(3)类图关系:
在这里插入图片描述

(4)ArrayList
a.它是一个针对于List接口的数组实现,是一个动态数组,也是我们最常用的集合。它允许任何符合规则的元素插入甚至包括null。每一个ArrayList都有一个初始容量(10),该容量代表了数组的大小。随着容器中的元素不断增加,容器的大小也会随着增加。在每次向容器中增加元素的同时都会进行容量检查,当快溢出时,就会进行扩容操作。所以如果我们明确所插入元素的多少,最好指定一个初始容量值,避免过多的进行扩容操作而浪费时间、效率。
b.
优点:对于get()和set()方法的调用花费为常数时间。ArrayList擅长于随机访问。
缺点:新项的插入和现有项的删除代价昂贵。且ArrayList是非同步的

(5)LinkedList
a.LinkedList是一个双向链表, 它除了有ArrayList的基本操作方法外还额外提供了get(),remove(),insert()方法在LinkedList的首部或尾部。
b.优点:新项插入与删除的开销均很小。
缺点:不易被索引。

(6)对比ArrayList和LinkedList:
在末端添加一些项构造一个List

public static void makelist(List<Integer> lst,int N){
    lst.clear();
    for(int i=0;i<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值