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函数用于在控制台上打印特定元素。
广告