Java中的泛型集合与非泛型集合


泛型集合

  • 错误在编译时出现,而不是在运行时出现。
  • 代码可重用性:泛型有助于重用已编写的代码,从而使其可用于其他类型(对于方法、类或接口)。
  • 如果数据结构是泛型的,例如列表,它只接受特定类型的对象并返回相同类型的对象作为输出。这消除了单独类型转换的需要。
  • 算法可以轻松实现,因为它们可以用于处理不同类型的对象,同时保持类型安全性和代码可重用性。

示例

以下是一个示例:

在线演示

import java.util.*;
public class Demo {
   public static void main(String[] args) {
      ArrayList<String> my_list = new ArrayList<String>();
      my_list.add("Joe");
      my_list.add("Rob");
      my_list.add("John");
      my_list.add("Billy");
      String s1 = my_list.get(0);
      String s2 = my_list.get(1);
      String s3 = my_list.get(3);
      System.out.println(s1);
      System.out.println(s2);
      System.out.println(s3);
   }
}

输出

Joe
Rob
Billy

名为Demo的类包含main函数。这里定义了一个字符串的ArrayList。使用‘add’函数将元素添加到此列表中。‘get’函数用于存储特定索引处的元素。println函数用于在控制台上打印特定元素。

非泛型集合

  • 当数据结构是非泛型时,尝试从集合/数据结构中检索数据时会产生问题。
  • 每次从集合中检索元素时,都需要将其显式类型转换为所需的类型,当元素过多时,这是一个问题。

使用非泛型集合实现上述代码将产生以下输出。

示例

在线演示

import java.util.*;
public class Demo {
   public static void main(String[] args) {
      ArrayList my_list = new ArrayList();
      my_list.add("Joe");
      my_list.add("Rob");
      my_list.add("Nate");
      my_list.add("Bill");
      String s1 = (String)my_list.get(0);
      String s2 = (String)my_list.get(1);
      String s3 = (String)my_list.get(3);
      System.out.println(s1);
      System.out.println(s2);
      System.out.println(s3);
   }
}

输出

:
Joe
Rob
Bill

名为Demo的类包含main函数。这里定义了一个字符串的ArrayList。使用‘add’函数将元素添加到此列表中。‘get’函数用于存储特定索引处的元素。这里,列表的每个元素在存储到另一个字符串变量之前都显式地转换为String类型。println函数用于在控制台上打印特定元素。

更新于:2020年9月14日

2K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告