集合(1)
什么是集合?
- 集合就是Java对数据结构和算法的封装。
算法的特点?
- 有输入输出
- 有穷性
- 确定性
- 可行性
集合和数组的区别?
- 相同:都可以存储相同的数据类型。
- 不同:数组的长度固定,而集合的长度可以变化。
Java集合的主要类型:
- Set(集)
- List(列表)
- Map(映射)
集合的框架图
[外链图片转存失败(img-68dzLCpv-1566116114526)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566114675787.png)]
Collection接口:
- 是List、Set接口的父接口
- 定义了可用于操作List、Set的方法----增删改查
List集合
List:
- List是元素有序并且可以重复的集合,被称为序列
- List可以精确的控制每个元素的插入位置,或删除某个位置元素
- ArrayList、LinkedList是List的两个实现类
ArrayList与LinkedList
-
相同点:
- 方法相同,方法运行结果相同(虽然方法体不同)
- 元素顺序操作相同
- 同一个元素可以加入多次
- 线程不安全
-
不同点:
- ArrayList底层是数组,适于查询。
- LinkedList底层是双向链表,适于删除与插入,线程不安全。
Vector:
- Vector和ArrayList一样,底层也是通过数组实现的,不同的是Vector支持线程同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。
ArrayList的常用方法:
-
创建对象
ArrayList<String> list = new ArrayList<String>();
-
获取长度
list.size();
-
添加元素
list.add();
-
在第1个元素后面添加E
list.add(1, "E");// 1下标
-
将list2中的全部数据添加到list1中
list1.addAll(list2);
-
将list2中的全部数据添加到list1中的第2个元素之后。
list1.addAll(2,list2);
-
将list中第2个数据删除
list.remove(2);
-
将list中的数据"d"删除
list.remove("d");
-
按照list2中的数据来删除list1
list.removeAll(list2);
-
清空ArrayList
list.clear();
-
将list中第2个元素,修改为M
list.set(2, "M");
-
获取list中第2个元素
String ele = list.get(2);