`
WandyQian
  • 浏览: 1749 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

List ArrayList Map HashMap

阅读更多
   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,HashMap

    ArrayList属于List接口的实现,而HashMap则实现了Map接口。两者在用途、性能和特性上都有所不同。 ArrayList是一个动态数组,它允许我们在集合中按索引顺序访问元素。它通过内部维护一个数组来存储元素,当添加...

    比较Vector、ArrayList和hashtable hashmap

    - Vector 和 ArrayList 都实现了 List 接口,其中 Vector 是线程安全的,而 ArrayList 不是。ArrayList 在插入和查找性能上通常优于 Vector,因为 Vector 的同步操作会带来额外的性能开销。 - LinkedList 实现了 ...

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别 List、ArrayList、Vector及map、HashTable、HashMap是Java容器类中的几个重要的接口和实现类,了解它们之间的区别是非常重要的。 首先,我们来看List...

    经典讲解List和ArrayList和Vector和HashTable和HashMap区别

    - **存储方式**:`List`接口的实现(如`ArrayList`和`Vector`)是有序的,而`Map`接口的实现(如`HashTable`和`HashMap`)是键值对形式,通过键来查找值。 - **数据访问**:`ArrayList`和`Vector`支持通过索引访问...

    ArrayList和HashMap如何自己实现实例详解

    ArrayList和HashMap是Java编程语言中两种常用的集合类,它们分别实现了List接口和Map接口,用于存储和操作数据。在本实例中,我们将探讨如何自己实现这两个数据结构,以加深对它们工作原理的理解。 首先,ArrayList...

    Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.

    ArrayList和LinkedList虽然不是Set,但它们的父接口List属于Collection,而Collection接口有一个子接口Set,例如HashSet是Set接口的一个实现,它内部基于HashMap实现,保证元素唯一性。 7. WeakHashMap WeakHashMap...

    List转换为List

    List&lt;Map, Object&gt;&gt; resultList = new ArrayList&lt;Map, Object&gt;&gt;(); for (AnnouncementBean announcementBean : listAnnouncementBean) { Map, Object&gt; map = new HashMap, Object&gt;(); map.put("ACTID", ...

    ResultSet 转为listmap

    List&lt;Map,Object&gt;&gt; results = new ArrayList&lt;Map,Object&gt;&gt;(); ResultSetMetaData rsmd = rs.getMetaData(); int colCount = rsmd.getColumnCount(); List&lt;String&gt; colNameList = new ArrayList(); for (int i =...

    JavaMap.rar_arraylist map_collection_java map_javamap_地图 java

    Java Map集合类是Java编程语言中用于存储键值对数据结构的重要接口,它与ArrayList、LinkedList等属于Java集合框架的一部分。在Java中,Map接口不继承Collection接口,而是独立存在,因为它代表的是键值对(key-...

    json字符串转成 Map/List

    List&lt;Map, Object&gt;&gt; list = new ArrayList(); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); Map, Object&gt; itemMap = new HashMap(); for (String key : obj.keySet()) { ...

    Java容器类List、ArrayList、Vector及map、HashTable应用

    Java容器类List、ArrayList、Vector及map、HashTable应用 List、ArrayList、Vector及map、HashTable是Java中常用的容器类,它们都继承自Collection接口,并提供了不同的实现方式和特点。在实际开发中,选择合适的...

    嵌套Map或者List获取key、value值

    List&lt;Map, String&gt;&gt; userList = new ArrayList(); for (Map, String&gt; user : userList) { String userName = user.get("name"); String userEmail = user.get("email"); // 处理每个用户的姓名和邮箱 } ``` 如果...

    51. ArrayList LinkedList Set HashMap介绍.txt

    `HashMap` 是一种基于哈希表实现的 `Map` 接口,提供了键值对映射的功能。键值对存储在哈希表中,可以高效地进行插入、删除和查找操作。 #### 特性与应用场景 - **非线程安全**:`HashMap` 不是线程安全的,在多...

    Android的卡片视图

    private ArrayList&lt;HashMap, Object&gt;&gt; list; // 用来控制CheckBox的选中状况 private ArrayList&lt;Boolean&gt; isSelected; // 上下文 private Context context; // 用来导入布局 private LayoutInflater ...

    java数据结构 ArrayList、Stack、Map

    **ArrayList** 是Java集合框架中的一个重要类,位于`java.util`包下,它实现了List接口。ArrayList实际上是一个动态数组,可以容纳任意类型的对象。它的主要特点是可以通过索引来访问和修改元素,索引从0开始。...

    java中set、list和map的使用方法实例

    // 常用的list接口的实现类有ArrayList和LinkedList // 学习map对象容器的使用 // map对象容器里面储存的元素是(key,value)形式的键值对,比如(a,1)(b,20)(c,55) // key不可以重复,value可以重复 // 常用的map接口...

    Map+List+ArrayList+LinkedList Java源码

    Java编程语言中的`Map`, `List`, `ArrayList` 和 `LinkedList` 是四个核心的数据结构,它们在实际开发中被广泛使用。了解它们的源码对于深入理解Java集合框架的内部工作原理至关重要,尤其是对初学者而言,这有助于...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    marshaller.marshal(new JAXBElement(new QName("people"), ArrayList.class, list), writer); return writer.toString(); } ``` 接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`...

    java基础-list_map_等等的基本概念

    Java基础中的List和Map是两种重要的数据结构,它们在编程中有着广泛的应用。List是一种有序的集合,允许存储重复的元素。Map则是一种键值对的集合,每个键是唯一的,对应一个值。 List接口是Java集合框架的一部分,...

Global site tag (gtag.js) - Google Analytics