Java基础:Collection的分支——List集合及其子类

  • Collection接口: 单列集合最顶层的接口,单列集合中的共性内容,所有单列集合都可以使用。
    • List接口 / 集合: 有存储顺序,允许存储重复元素。
      • ArrayList类(重点): 底层是数组实现的, 查找快, 增删慢。由于是数组实现,在增和删的时候会牵扯到数组增容,以及拷贝元素,所以慢。而数组是可以直接按索引查找, 所以查找时较快,一个普通的for循环可以遍历。
      • LinkedList类: 底层是链表实现的, 增删快, 查找慢。由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素. 这样的增删效率较高但由于没有索引,查询时需要一个一个的遍历, 所以查询效率较低。
      • Vector类(了解): 和ArrayList原理相同,但线程安全, 效率略低,和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低 。
    • Set接口 / 集合: 无存储顺序, 不允许存储重复元素,无索引。
      • HashSet类 (重点):底层是哈希表(+红黑树)实现的。
      • TreeSet类(了解):底层是二叉树实现,一般用于排序。
      • LinkedHashSet类:可以保证存取顺序,底层是哈希表+链表实现的。注意它是HashSet类的子类。

List接口(有序的Collection,也成为序列)

List集合是单列集合的重要分支,习惯性将List接口的对象称为List集合,允许有重复元素,线性存储,索引访问,元素有序。

总结:
List常见方法(假设用名为list的List对象来调用):
list.add(“Z”);添加元素Z
list.add(1, "X");在索引1处添加元素X
list.remove(2);移除索引2处的元素
list.set(2, "Y");将索引2处元素替换为Y

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListDemo {
   
    public static void main(String[] args) {
   
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        // 打印集合,因为重写了toString所以是内容不是地址
        System.out.println(list);//[A, B, C]
        
        // 指定位置添加元素
        list.add(1, "X");
        System.out.println(list);//[A, X, B, C]
        
        // 移除指定位置元素,并返回
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值