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