集合泛型

Java 集合框架中的泛型是 Java 5 引入的一个特性,它允许开发者在编译时就确定集合中元素的类型,从而避免类型转换和潜在的类型安全问题。以下是一些常用的 Java 集合类和它们使用泛型的例子:

  1. ArrayList - 动态数组,提供快速随机访问。

    ArrayList<String> list = new ArrayList<>();
    list.add("Hello");
    
  2. LinkedList - 双向链表,提供快速的插入和删除操作。

    LinkedList<Integer> list = new LinkedList<>();
    list.add(1);
    
  3. HashSet - 基于哈希表的集合,不允许有重复元素。

    HashSet<String> set = new HashSet<>();
    set.add("Unique");
    
  4. LinkedHashSet - 像 HashSet 一样,但是维护元素的插入顺序。

    LinkedHashSet<Integer> set = new LinkedHashSet<>();
    set.add(1);
    
  5. TreeSet - 基于红黑树的集合,可以按照自然顺序或自定义顺序对元素进行排序。

    TreeSet<String> set = new TreeSet<>();
    set.add("Apple");
    
  6. HashMap - 基于哈希表的键值对映射。

    HashMap<String, Integer> map = new HashMap<>();
    map.put("One", 1);
    
  7. LinkedHashMap - 像 HashMap 一样,但是维护插入顺序或访问顺序。

    LinkedHashMap<String, Double> map = new LinkedHashMap<>();
    map.put("Pi", 3.14);
    
  8. TreeMap - 基于红黑树的键值对映射,可以按照自然顺序或自定义顺序对键进行排序。

    TreeMap<Integer, String> map = new TreeMap<>();
    map.put(1, "First");
    
  9. ConcurrentHashMap - 线程安全的 HashMap 变体,适合并发环境。

    ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();
    map.put("Key", "Value");
    

使用泛型的好处包括:

  • 类型安全:编译时检查类型,避免运行时类型错误。
  • 消除类型转换:不需要显式地将元素从 Object 类型转换回原始类型。
  • 代码重用:泛型类可以用于多种类型,提高代码的灵活性和可重用性。

Java 泛型也有一些限制,比如不能使用基本类型作为泛型类型,因为泛型在编译时会被擦除,所以不能创建泛型类型的数组。此外,泛型类不能有静态类型字段,因为它们与泛型类型参数相关联,而 Java 不允许有与泛型类型参数相关的静态字段。

posted @ 2024-08-06 11:27  wen-210162704027  阅读(1)  评论(0编辑  收藏  举报