初始化ArrayList和HashMap的最佳方法是什么?

SJ1*_*J19 3 java generics arraylist intellij-idea data-structures

假设我想创建一个ArrayListfor数字.我学习它的方式是这样的:

private static List<Integer> numbers = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

但是IntelliJ IDEA想要纠正它

private static List<Integer> numbers = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

然后我发现这个也有效:

private static List<Integer> numbers = new ArrayList();
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*mus 7

最好的方法是:

private static List<Integer> numbers = new ArrayList<>(); // Java 7
private static List<Integer> numbers = new ArrayList<Integer>(); // Java 6
Run Code Online (Sandbox Code Playgroud)

让我们看看其他例子:

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

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