java - 初始化 ArrayList 和 HashMap 的最佳方式?

标签 java generics arraylist data-structures intellij-idea

假设我想为数字创建一个 ArrayList。我的学习方式是这样的:

private static List<Integer> numbers = new ArrayList<Integer>();

但是IntelliJ IDEA想更正为

private static List<Integer> numbers = new ArrayList<>();

然后我发现这也有效:

private static List<Integer> numbers = new ArrayList();

现在我很困惑,最好的方法是什么?还有什么区别。同样的问题适用于 HashMap

最佳答案

最好的办法是:

private static List<Integer> numbers = new ArrayList<>(); // Java 7
private static List<Integer> numbers = new ArrayList<Integer>(); // Java 6

让我们看看其他例子:

private static ArrayList<Integer> numbers = new ArrayList<Integer>();使用特定类作为类型,除非您需要访问特定于 ArrayList 的方法(我不知道),否则不鼓励这样做

private static ArrayList<Integer> numbers = new ArrayList();是类型不安全的,您的 IDE 应该在这一行给您一个警告。

关于java - 初始化 ArrayList 和 HashMap 的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424066/

相关文章:

generics - 如何以类型安全的方式从通用列表中检索项目

android - 在Android中将ArrayList转换为String数组

java - 仅在恢复 Activity 时获取 IndexOutOfBoundsException

java - 在 Android Studio 中,方法注释未显示在智能感知中

java - J面板: how to add buttons above table?

java - 为什么这会在 Java 中编译?

java - 打乱数组的元素

java - 在java中创建自己的关键字?

java - 如何使用参数名称而不是数字来格式化消息?

java - 为什么我不能插入堆栈? Java 6 泛型