JavaAPI-List集合

目录

一、集合是什么

二、集合的体系

三、集合的帮助类

四、List集合和Set集合的区别

五、ArrayList集合的添加,查看,修改,删除

六、泛型

七、ArrayList集合中的常用方法

八、List的分类

九、init:带有init的代表是初始化


一、集合是什么

1.集合是Java中提供的一种容器,可以用来存储多个数据。

二、集合的体系

1.Collection(Interface)下面有两个子接口List和Set

2.List接口下面有三个实现类:ArrayList、LinkedList、Vector

(1)Vector下面还有一个子类Stack

3.Set接口下面有两个实现类:HashSet、TreeSet

4.还有一个接口,它不属于Collection下面的子类或者是子接口

(1)这个接口是:Map

(2)Map下面有HashMap和HashTable

三、集合的帮助类

1.集合的帮助类为:Collections。

四、List集合和Set集合的区别

1.List集合里面存储的数据是可以重复的。

2.Set集合里面存储的数据是不能重复的。

五、ArrayList集合的添加,查看,修改,删除

1.添加

(1)向集合中添加一个元素

  • 对象名.add()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");

(2)将一个集合中的所有元素一个一个的添加到另一个集合中

  • 对象名.addAll()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");
    ArrayList list2 = new ArrayList();
    list2.add(4);
    list2.add(3);
    // 将集合中的元素一个一个添加到集合中
    list.addAll(list2);

2.查看

(1)查看集合的大小

  • 对象名.size()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");
    System.out.println(list.size()); // 3

(2)查看集合的元素,通过下标查看,和数组一样,下标从0开始

  • 对象名.get()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");
    System.out.println(list.get(0)); // 123

3.修改集合的元素

(1)对象名.set()

ArrayList list = new ArrayList();
list.add(123);
list.add(321);
list.add("abc");
list.set(0,333); // 将下标为0的元素设置为333

4.删除

(1)删除集合中的全部内容

  • 对象名.clear()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");
    list.clear();

(2)删除集合中的某一个内容,通过下标删除

  • 对象名.remove()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");
    list.remove(0); // 移除下标为0的元素

(3)删除一个集合中和另一个集合相同的元素

  • 对象名.removeAll()
  • ArrayList list = new ArrayList();
    list.add(123);
    list.add(321);
    list.add("abc");
    list.add(4);
    list.add(3);
    ArrayList list2 = new ArrayList();
    list2.add(4);
    list2.add(3);
    list.removeAll(list2);

六、泛型

1.泛型可以使集合中保存的元素为同一种类型,如果类型不同则会报错

2.泛型中不能放基本数据类型,只能放引用数据类型

3.泛型的格式

ArrayList<String> list = new ArrayList<String>(); //<可以是任意的引用类型>

4.泛型的好处

(1)可以自动检测存入类型的合法性

(2)取值的时候,可以自动转型成为对应的类型

七、ArrayList集合中的常用方法

1.判断元素是否在集合中

(1)对象名.contains()

ArrayList list = new ArrayList();
list.add(123);
list.add(321);
list.add("abc");
System.out.println(list.contains("abc")); // true

2.截取集合中的元素

(1)对象名.subList()

ArrayList list = new ArrayList();
list.add(123);
list.add(321);
list.add("abc");
System.out.println(list.subList(0,2)); // 截取集合

3.判断一个集合中是否包含另一个集合

(1)对象名.containsAll()

ArrayList list = new ArrayList();
list.add(123);
list.add(321);
list.add("abc");
list.add(4);
list.add(3);
ArrayList list2 = new ArrayList();
list2.add(4);
list2.add(3);
System.out.println(list.containsAll(list2)); // true

八、List的分类

1.ArrayList

(1)ArrayList的默认容量是10,增长方式是:*3/2+1;

(2)ArrayList不能自定义增长方式,但是Vector可以;

(3)ArrayList是可变长度的数组类型;

(4)ArrayList查询块,添加慢;

2.LinkedList

(1)LinkedList是双向链表结构

(2)LinkedList添加块,查询慢

(3)LinkedList中和ArrayList不同的方法

  • 添加元素到开头:对象名.addFirst()
  • LinkedList list = new LinkedList();
    list.add(123);
    list.add(1.23);
    // 添加到第一位
    list.addFirst(666);
  • 添加元素到集合中:对象名.addLast()
  • LinkedList list = new LinkedList();
    list.add(123);
    list.add(1.23);
    // 和add没区别
    list.addLast(999);
  • 注意:addLast() 和 add()没有区别

(4)LinkedList中常用方法

  • 查找对应元素的下标
    • 对象名.indexOf(元素名);
  • 找到集合中的第一个元素,但是不删除这个元素
    • 对象名.peek()
    • peek()和peekFirst()差不多
  • 找到集合中最后一个元素,但是不删除这个元素
    • 对象名.peekLast()
  • 找到集合中的第一个元素,删除这个元素
    • 对象名.poll()
    • poll()和pollFirst差不多
  • 找到集合中最后一个元素,删除这个元素
    • 对象名.pollFast
  • 从这个集合所表示的堆栈中弹出一个元素
    • 对象名.pop()
    • 弹出的元素是第一个元素
    • 弹出就相当于删除
  • 将一个元素加入集合中
    • 对象名.push(要加入的元素)
    • push是将元素加入到第一个

3.Vector

(1)Vector查询慢,添加也慢,但是vector安全;

(2)Vector的默认容量为10,增长方式为:*2;

(3)Vector可以自定义增量;

(4)Vector的三个构造有什么区别;

// 创建默认容量为10的Vector对象
Vector v1 = new Vector();
System.out.println(v1.capacity()); // 10

// 创建默认容量为2的Vector对象
Vector v2 = new Vector(2);
System.out.println(v1.capacity()); // 2

// 创建默认容量为2,增量为5的Vector对象
Vector v3 = new Vector(2,5);

(5)将容量的大小变为和长度相同:对象名.trimToSize();

(6)Vector有一个子类是Stack(堆栈);

九、init:带有init的代表是初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

所愿ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值