📜  声明泛型集 java (1)

📅  最后修改于: 2023-12-03 15:23:41.990000             🧑  作者: Mango

声明泛型集 Java

Java中的泛型集集成了集合的特性和泛型的优势。泛型集能够存储一组同类型(或子类型)的数据,同时还可支持泛型编程,使代码更加通用和可维护。

定义泛型集合

Java中定义泛型集合的语法如下:

ArrayList<T> list = new ArrayList<T>();

其中,ArrayList是指定泛型类型,T是泛型占位符,表示泛型类型。

Java中的泛型类型可以是Java类、接口、数组、注解以及基本数据类型的封装类型。

使用泛型集合

定义泛型集合后,我们可以使用Java提供的方法对泛型集合进行操作。

添加元素

向泛型集合中添加元素有两种方式:

  1. 调用add方法添加元素
list.add("hello");
  1. 使用Collections的addAll方法添加元素
String[] arr = {"world", "!"};
list.addAll(Arrays.asList(arr));
删除元素

使用remove方法或removeAll方法删除元素:

list.remove(0); // 删除第一个元素
list.removeAll(Arrays.asList(arr)); // 删除数组中的所有元素
查找元素

indexOf方法用于返回元素在泛型集合中的索引位置:

int index = list.indexOf("hello"); // 在泛型集合中找到"hello"的索引位置,如果不存在返回-1
遍历泛型集合

使用for-each循环可以遍历泛型集合中的所有元素:

for (T element : list) {
    System.out.println(element);
}
泛型集合的类型限定

Java的泛型集合支持类型限定,可以定义泛型类型的上限和下限:

上限类型

泛型类型的上限,指定了泛型类型必须是某个类或该类的子类。类型上限使用关键字extends

class Pair<T extends Number> {
    public T first;
    public T second;
}

在这个例子中,泛型类型T必须是Number或其子类。

下限类型

泛型类型的下限,指定了泛型类型必须是某个类或该类的父类。类型下限使用关键字super

public static <T> void copy(List<? super T> dest, List<? extends T> src) {
    for (int i = 0; i < src.size(); i++) {
        dest.set(i, src.get(i));
    }
}

在这个例子中,dest必须是T的超类,src必须是T的子类。

总结

Java的泛型集合提供了一种简单、灵活、通用的数据存储方式,可以避免类型不匹配带来的问题。了解泛型集合的基本操作和类型限定,能够更好地应用泛型集合,提高代码的可读性和可维护性。