1.1 介绍Java集合 和 Collection
1.1.1 Java 集合 需要学哪些
首先 你要清楚到 Java 集合 分为 哪几个 部分。
① 集合框架体系
② Collection
③ Map
④ Collections
- Collection 就包含 两个大类:List 和 Set
List:有 ArrayList
、LinkedList、Vector
Set:有 HashSet
、LinkedHashSet、TreeSet
- Map
Map:有 HashMap
、Hashtable、LinkedHashMap、TreeMap、Properties 这个 还是 挺重要的,而且 是个人 就会!!
- Collections 属于 工具类,也是个 必学的项!
1.1.2 集合的理解 和 好处
我们 通常 再没学习过 集合 之前 都是 用 数组来进行 数据的保存的。比如说 我们 之前 在 写 smbms Web 项目的时候,封装 的 excute() 方法 参数那里 用的就是 Object 数组。
- 数组
① 长度开始 时 必须是 指定的,而且一旦 指定 还不能 修改。
② 保存 的 必须 为 同一 类型的 元素。
③ 使用 数组 进行 增加 元素 的 示意 代码 - 比较麻烦。
比如说,写出 Person 数组 扩容的代码,就很麻烦!其中一个 释放内存的 点 就很无语。我们是可以 实现的,但是 我们 知道 Java 的释放内存 是 JVM 的 GC 回收线程 自己判断进行回收的。让我们 觉得 很无力。
Person[] pers = new Person[1];
Person[] pers2 = new Person[2];
for(int i = 0;i < pers.length; ++i){
pers2[i] = pers[i];
}// 或者 你直接 用 System.arraycopy(); 进行一个 拷贝 也是可以的。
pers = pers2;// 让 pers 指针 指向 pers2 就行了。以后操作 pers 就是操作 pers2了。
- 集合
① 可以 动态保存 任意 多个对象,使用 比较方便
② 提供了 一系列 方便的 操作 对象 的方法,比如 add、remove、set、get 等等等,这样 让我们 增删改查、甚至移动、做特殊处理,都 更加的方便!
③ 使用集合 调用一些方法就可以实现 某些功能 效果,使得 代码更加的 简洁明了。
2.1 Collection
2.1.1 Collection 接口 和 常用方法
Collection 接口 常用方法,以实现 子类 ArrayList 来演示。CollectionMethod.java
① add
添加单个 元素
② remove
删除指定元素
③ contains
查找元素 是否存在
④ size
获取元素个数
⑤ isEmpty
判断 是否为空
⑥ clear
清空
⑦ addAll
添加 多个 元素
⑧ containsAll
查找 多个元素 是否都存在
⑨ removeAll
删除多个元素
⑩ 说明:以 ArrayList 实现 类 演示。
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Collectiion_ {
public static void main(String[] args) {
// 1. 集合 主要分为 两组(单列集合<单个对象>,双列集合<键值对>)
// 2. Collection 接口 有两个重要的子接口(List、Set)
// 3. List 和 Set 就是 单列集合,属于 单个单个元素的 存放
// 4. Map 就是 双列集合 一般 以 键值对的 形式 存放数据的
// 5. 大概率情况下,是必须要 记住 集合的 体系图的
List list = new ArrayList();
list.add("jack");
list.add(10);
list.add(true);
System.out.println("list=" + list);
list.remove("jack");// 删除 指定元素
System.out.println("list=" + list);
list.remove(0);
System.out.println("list=" + list);
System.out.println(list.contains("jack"));
System.out.println(list.size());
System.out.println(list.isEmpty());
list.clear();
System.out.println("list=" + list);
List l2 = new ArrayList();
System.out.println(l2.isEmpty());
l2.addAll(list);
System.out.println(l2.containsAll(list));
}
}