java - 类型化与非类型化 ArrayList

标签 java arraylist

在 Java 中使用类型化与非类型化ArrayList 有什么区别?

例如,使用 CustomObjectArrayList:

输入:

ArrayList<CustomObject> typedArray = new ArrayList<>();
typedArray.add(new CustomObject);

或非类型:

ArrayList<> nonTypedArray = new ArrayList<>();
nonTypedArray.add(new CustomObject);

有没有优先选择后者的情况?当 ArrayList 持有不同的数据类型时有什么不同吗? StringInt 等的 ArrayList?

最佳答案

在第二种方法中,不是强制只添加 CustomObject 而在第一种方法中,否则,您将得到编译错误。

ArrayList<CustomObject> typedArray = new ArrayList<>();
typedArray.add(new CustomObject());

这种方法通常更可取,因为没有机会出现 Class Cast Exception,但在第二种方法中,出现这种情况的可能性很高!!

JavaDocs 对其进行了精美的解释:Why to prefer Generics

  1. 在编译时进行更强的类型检查。
  2. 消除 Actor 阵容。
  3. 使程序员能够实现通用算法。

关于java - 类型化与非类型化 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29600320/

相关文章:

java - 来自 C#.Net 的 Groovy 和 Grails

java - 如何在 JDBC 中创建断言?

Java OutOfMemoryError 与 ArrayList<List<Integer>>

java - 如何将字符串从 Java 服务器发送到 C++ 客户端?

java - 如何创建允许取消选择实际选项的 JToggleButton 的 ButtonGroup?

java - 搜索数组列表中的特定对象并打印数组列表中的所有对象

java - arraylist循环不显示

java - 在线性时间内找到未排序数组的中位数?

java - 将结果集添加到 ArrayList 需要花费大量时间

java - RenderedImage 到 BufferedImage 用于多页 tiff 读取