Java 中的 ArrayList 或 List 声明
这两种声明有什么区别?
声明 1:
ArrayList<String> arrayList = new ArrayList<String>();
声明 2:
List<String> arrayList = new ArrayList<String>();
这两种声明有什么区别?
声明 1:
ArrayList<String> arrayList = new ArrayList<String>();
声明 2:
List<String> arrayList = new ArrayList<String>();
List<String> arrayList = new ArrayList<String>();
是通用的,您希望在将实现详细信息返回到客户端时隐藏它,以后可以将实现从透明更改为透明。ArrayList
LinkedList
此机制在设计库等的情况下很有用,这些库可能会在某个时间点更改其实现细节,而客户端上的更改最少。
ArrayList<String> arrayList = new ArrayList<String>();
这要求你总是需要返回。在某个时间点,如果要将实现详细信息更改为 ,则客户端上也应该进行更改以代替 。ArrayList
LinkedList
LinkedList
ArrayList
List
是一个接口,是 List 接口的实现。除了 List 接口中提供的方法外,该类只有几种方法。这方面没有太大的区别。ArrayList
ArrayList
(i.e clone(), trimToSize(), removeRange() and ensureCapacity())
1. List<String> l = new ArrayList<>();
2. ArrayList<String> l = new ArrayList<>();
如果使用第一个,您将能够调用 List 接口中可用的方法,并且无法调用该类中可用的新方法。在 as 中,您可以自由使用 if 中使用第二种方法中的所有可用方法。ArrayList
ArrayList
我会说第一种方法是更好的方法,因为当您开发java应用程序时,当您应该将集合框架对象作为参数传递给方法时,那么最好采用第一种方法。
List<String> l = new ArrayList<>();
doSomething(l);
将来由于性能限制,如果您要将实现更改为 use 或实现接口的其他类,而不是 ,则只需在某一点(实例化部分)进行更改。LinkedList
List
ArrayList
List<String> l = new LinkedList<>();
否则,您应该在所有位置进行更改,无论在哪里,您都使用特定的类实现作为方法参数。