Java 集合

2020-06-01  本文已影响0人  的刀

1.为什么需要集合

数组一旦定义,大小无法修改,存储的数据必须是同一类型,但是实际应用需要变长
在 Java 中,集合框架 就可以帮我们解决这个问题。使用集合,可以实现两个功能:

  1. 集合中的元素个数是可变的。
  2. 集合中可以存储不同类型的数据。

2.Java中的集合

集合框架中的类是为了容纳一些对象,便于对象的访问和传输,可以看成可变的 对象数组,但是集合的操作中又包含了更为强大的功能。在 Java 中,集合框架里面 提供了丰富的 API,主要是以下两类:
1.一维集合
该类集合中,存放数据是一维的,类似于变长的一维数组。该系列最顶级是 Collection 接口,在该接口下,有三个子系列:List、Queue 和 Set。每个子系列中有一些类。
2.二维集合
该类集合中,也提供了容纳多个对象的功能,并且,可以为每个对象指定一个key 值。如果为两个不同的对象指定同一个 key 值,后面的将会把前面的覆盖。对象在集 合中没有顺序。因此,存放数据是二维的,相当于 2 列多行的变长二维数组。如图所示:

key value
学号 0001
姓名 王刚
性别

该系列最顶级是 Map 接口,在该接口下,若干个子系列,每个子系 列中有一些类。

3.使用一维集合

(1)使用List集合

List 集合的共同特点是:

  1. 实现了 java.util.List 接口。
  2. 集合中元素有顺序。
  3. 允许重复元素。
  4. 每个元素可以通过下标访问。下标从 0 开始.
    List 集合中最有代表性的是: 1. java.util.ArrayList。 2. java.util.LinkedList。 3. java.util.Vector。

这三个类的使用基本相同,但是在底层实现上有些区别。比如,ArrayList 不是线
程安全的,Vector 实现了线程安全。

package 练习;
import java.util.ArrayList;

public class ListTest1 {
    public static void main(String[] args) {
        ArrayList al = new ArrayList(); // 添加
        al.add("中国");
        al.add("美国");
        al.add("日本");
        al.add("韩国"); // 删除美国
        al.remove(1); // 将 0 位置的元素修改为“China”
        al.set(0, "China"); // 遍历
        int size = al.size();
        for (int i = 0; i < size; i++) {
            String str = (String) al.get(i);
            System.out.println(str);
        }
    }
}
image.png
(2)使用Set集合

Set 集合的共同特点是:

  1. 实现了 java.util.Set 接口。
  2. 默认情况下,集合中元素没有顺序。
  3. 不允许重复元素,如果重复元素被添加,则覆盖原来的元素。
  4. 元素不可以通过下标访问。
    List 集合中最有代表性的是:java.util.HashSet。
import java.util.HashSet;

public class ListTest1 {
    public static void main(String[] args) {
        HashSet hs = new HashSet(); // 添加
        hs.add("中国");
        hs.add("美国");
        hs.add("日本");
        hs.add("韩国"); // 删除美国
        hs.remove("美国"); // 遍历
        java.util.Iterator ite = hs.iterator();
        while (ite.hasNext()) {/*我们可以用 Iterator 对象的 hasNext()方法判断是否 存在下一个元素,然后用 Iterator 对象的 next()方法获取下一个元素。结合循环来实现。*/                               
            String str = (String) ite.next();
            System.out.println(str);
        }
    }
}
image.png
image.png

4使用泛型简化集合操作

虽然在集合中可以存储不同类型的对象,但是一般情况下我们仍然使用的是同一 种对象。在遍历时,每次都要强制转换,比较麻烦。


image.png
image.png
image.png

5.使用二维集合

(1)使用Map 集合

二维集合中,使用最多的是 java.util.HashMap。 HashMap 类提供了二维集合的功能,最常见的构造函数是: public HashMap()
用这个构造函数可以生成一个空的 HashMap 对象。 HashMap 类中,可以为每个对象指定一个 key 值。 注意,如果为两个不同的对象指定同一个 key 值,后面的将会把前面的覆盖。对
象在 HashMap 中没有顺序。


image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读