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

java 8server side programmingprogramming

泛型集合

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

示例

以下是一个例子 −

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 的类包含主函数。这里定义了一个字符串数组列表。使用 ‘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 的类包含主函数。这里定义了一个字符串数组列表。借助 ‘add’ 函数将元素添加到此列表中。‘get’ 函数用于将元素存储在特定索引处。这里,列表中的每个元素在存储到另一个字符串变量之前,都会被显式转换为 String 类型。println 函数用于在控制台上打印特定元素。


相关文章