List<UsercardDto> usercardDtos = Lists.newArrayList();
List<UsercardDto> usercardDtos1 = new ArrayList<UsercardDto>();
Map<String,Object> param = Maps.newHashMap();
Map<String, Object> paraMap = new HashMap<String, Object>();
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
编程是要面向对象编程,针对抽象(接口),而非具体
List 是接口,ArrayList是实现
实现List接口的有ArrayList、LinkedList、Vector等,所以用哪个就直接new 一个接口实现
这是一种很好的设计模式.一个接口有多种实现,这种写法是java面向对象的一种思想,
依赖倒置原则,即依赖于抽象不依赖于实现(具体)。
给调用者提供的应该是接口或者抽象类,而实现者可以实现或者继承接口或者抽象类来满足调用者,这样调用者不必知道实现者怎样操作,实现者也可以根据具体情况去实现,这样去除了耦合。这就是java设计模式的基础思想之一。
从Java语法上,这种方式是使用接口引用指向具体实现,这样大大提高了代码使用的灵活性。
比如,你若希望用LinkedList的实现来替代ArrayList的话,只需改动一行即可:
List list = new LinkedList();
而程序中的其它部分不需要改动,这样比较灵活,不会失去通用性。
不过有的时候,你如果能确定后边用的全部是ArrayList,最好使用ArrayList list = new ArrayList();
ArrayList list = new ArrayList()
将ArrayList 改为了List,并且返回了这个List
那么以后用的烦恼就是
[java] view plaincopy
if(
list instanceOf java.util.ArrayList){
//do something
}
else if(list instanceOf java.util.LinkedList){
//error
}
else if(list instanceOf cn.com.bigc.myList){
//do;……some xp not defined in List
}
……
如果你要想把这个if else去掉,那么,你还必须再写几个类。呵呵,这样的代价是不值得的。
分享到:
相关推荐
ArrayList属于List接口的实现,而HashMap则实现了Map接口。两者在用途、性能和特性上都有所不同。 ArrayList是一个动态数组,它允许我们在集合中按索引顺序访问元素。它通过内部维护一个数组来存储元素,当添加...
- Vector 和 ArrayList 都实现了 List 接口,其中 Vector 是线程安全的,而 ArrayList 不是。ArrayList 在插入和查找性能上通常优于 Vector,因为 Vector 的同步操作会带来额外的性能开销。 - LinkedList 实现了 ...
List、ArrayList、Vector及map、HashTable、HashMap分别的区别 List、ArrayList、Vector及map、HashTable、HashMap是Java容器类中的几个重要的接口和实现类,了解它们之间的区别是非常重要的。 首先,我们来看List...
- **存储方式**:`List`接口的实现(如`ArrayList`和`Vector`)是有序的,而`Map`接口的实现(如`HashTable`和`HashMap`)是键值对形式,通过键来查找值。 - **数据访问**:`ArrayList`和`Vector`支持通过索引访问...
ArrayList和HashMap是Java编程语言中两种常用的集合类,它们分别实现了List接口和Map接口,用于存储和操作数据。在本实例中,我们将探讨如何自己实现这两个数据结构,以加深对它们工作原理的理解。 首先,ArrayList...
ArrayList和LinkedList虽然不是Set,但它们的父接口List属于Collection,而Collection接口有一个子接口Set,例如HashSet是Set接口的一个实现,它内部基于HashMap实现,保证元素唯一性。 7. WeakHashMap WeakHashMap...
List<Map, Object>> resultList = new ArrayList<Map, Object>>(); for (AnnouncementBean announcementBean : listAnnouncementBean) { Map, Object> map = new HashMap, Object>(); map.put("ACTID", ...
List<Map,Object>> results = new ArrayList<Map,Object>>(); ResultSetMetaData rsmd = rs.getMetaData(); int colCount = rsmd.getColumnCount(); List<String> colNameList = new ArrayList(); for (int i =...
Java Map集合类是Java编程语言中用于存储键值对数据结构的重要接口,它与ArrayList、LinkedList等属于Java集合框架的一部分。在Java中,Map接口不继承Collection接口,而是独立存在,因为它代表的是键值对(key-...
List<Map, Object>> list = new ArrayList(); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); Map, Object> itemMap = new HashMap(); for (String key : obj.keySet()) { ...
Java容器类List、ArrayList、Vector及map、HashTable应用 List、ArrayList、Vector及map、HashTable是Java中常用的容器类,它们都继承自Collection接口,并提供了不同的实现方式和特点。在实际开发中,选择合适的...
List<Map, String>> userList = new ArrayList(); for (Map, String> user : userList) { String userName = user.get("name"); String userEmail = user.get("email"); // 处理每个用户的姓名和邮箱 } ``` 如果...
`HashMap` 是一种基于哈希表实现的 `Map` 接口,提供了键值对映射的功能。键值对存储在哈希表中,可以高效地进行插入、删除和查找操作。 #### 特性与应用场景 - **非线程安全**:`HashMap` 不是线程安全的,在多...
private ArrayList<HashMap, Object>> list; // 用来控制CheckBox的选中状况 private ArrayList<Boolean> isSelected; // 上下文 private Context context; // 用来导入布局 private LayoutInflater ...
**ArrayList** 是Java集合框架中的一个重要类,位于`java.util`包下,它实现了List接口。ArrayList实际上是一个动态数组,可以容纳任意类型的对象。它的主要特点是可以通过索引来访问和修改元素,索引从0开始。...
// 常用的list接口的实现类有ArrayList和LinkedList // 学习map对象容器的使用 // map对象容器里面储存的元素是(key,value)形式的键值对,比如(a,1)(b,20)(c,55) // key不可以重复,value可以重复 // 常用的map接口...
Java编程语言中的`Map`, `List`, `ArrayList` 和 `LinkedList` 是四个核心的数据结构,它们在实际开发中被广泛使用。了解它们的源码对于深入理解Java集合框架的内部工作原理至关重要,尤其是对初学者而言,这有助于...
marshaller.marshal(new JAXBElement(new QName("people"), ArrayList.class, list), writer); return writer.toString(); } ``` 接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`...
Java基础中的List和Map是两种重要的数据结构,它们在编程中有着广泛的应用。List是一种有序的集合,允许存储重复的元素。Map则是一种键值对的集合,每个键是唯一的,对应一个值。 List接口是Java集合框架的一部分,...