JAVA day18,19 单列集合Collection:List(ArrayList,LinkedList,Vector)、Queue(Deque)、Set(HashSet,TreeSet),比较器

Collection单列集合

所有超级接口:

Iterable<E>

所有已知子接口:

BeanContext, BeanContextServices, BlockingDeque<E>, BlockingQueue<E>, Deque<E>, List<E>, NavigableSet<E>, Queue<E>, Set<E>, SortedSet<E>

一、List

所有已知实现类:

AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

java.util.List 接⼝继承⾃ Collection 接⼝,是单列集合的⼀个重要分⽀,习惯性地会将实现了 List 接⼝的对象称为 List 集合。在 List 集合中允许出现重复的元素,所有的元素是以⼀种线性⽅式进⾏存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List 集合还有⼀个特点就是元素有序,即元素的存⼊顺序和取出顺序⼀致。

1.特点

  • 它是⼀个元素存取有序的集合。例如,存元素的顺序是 11 22 33 。那么集合中,元素的存储就是按照11 22 33 的顺序完成的)
  • 集合中允许有null值
  • 它是⼀个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是⼀个道
    理)
  • 集合中可以有重复的元素,通过元素的 equals ⽅法,来⽐较是否为重复的元素。

2. 常用API

 List作为Collection集合的⼦接⼝,不但继承了Collection接⼝中的全部⽅法,⽽且还增加了⼀些根据元素索引来操作集合的特有⽅法,如下:

public void add(int index, E element) :将指定的元素,添加到该集合中的指定位置上。
public E get(int index) :返回集合中指定位置的元素。
public E remove(int index) :移除列表中指定位置的元素 , 返回的是被移除的元素。
public E set(int index, E element) :⽤指定元素替换集合中指定位置的元素 , 返回值的更新前的元素。

3.List接口的实现类

1.ArrayList

java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于⽇常开发中使⽤最多的功能为查询数据、遍历数据,所以 ArrayList 是最常⽤的集合。

特点:

1.按照顺序排列,每个元素都带有标号;2.除了有标号是连续的,内存中的物理空间也是连续的。

底层使用的数据结构:顺序结构;

顺序结构底层实现:数组;

优缺点:查询快;增删慢,内存的物理空间是连续的,利用不到碎片空间。

import java.util.ArrayList;
// ArrayList是子接口List的实现类之一
public class ArrayListDemo01 {
    public static void main(String[] args) {
        ArrayList<Object> a = new ArrayList<Object>();
        a.add(2);
        a.add(23);
        System.out.println(a);//[2, 23]

        //1.向集合(this)中末尾添加元素
        a.add(2,55);
        System.out.println(a);//[2, 23, 55]

        //2.向集合index的位置中插入obj元素
        a.add(1,"哈哈");
        System.out.println(a);//[2, 哈哈, 23, 55]

        //3.删除指定位置(index)上的元素,并且返回删除的元素
        //比如删除下标是2的元素
        a.remove(2);
        System.out.println(a);//[2, 哈哈, 55]

        //4.删除第一个指定元素(obj)
        a.remove(0);
        System.out.println(a);//[哈哈, 55]

        //5.替换指定位置上的元素,替换成obj,并且返回被替换的元素
        a.set(1,"嘻嘻");
        System.out.println(a);//[哈哈, 嘻嘻]

        //6.从集合中获得指定位置(index)的元素
        //比如下标是1位置上的元素
        System.out.println(a.get(1));//嘻嘻

        //
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值