java之Map,List,Array

原创 2016年08月31日 11:14:06
1.类的层次关系如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap

2.世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合,有人想有可以自动扩展的数组,所以有了List ,有的人想有没有重复的数组,所以有了set.

   要深入理解集合首先要了解下我们熟悉的数组

  数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。
  Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。Set 和List 都继承了Conllection,Map。
3. Collection接口的方法:
    boolean add(Object o)      :向集合中加入一个对象的引用      
    void clear():删除集合中所有的对象,即不再持有这些对象的引用      
    boolean isEmpty()    :判断集合是否为空    
    boolean contains(Object o) : 判断集合中是否持有特定对象的引用     
    Iterartor iterator()  :返回一个Iterator对象,可以用来遍历集合中的元素   
    boolean remove(Object o) :从集合中删除一个对象的引用  
    int size()       :返回集合中元素的数目  
    Object[] toArray()    : 返回一个数组,该数组中包括集合中的所有元素 </span> 
4.关于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。
Iterator接口声明了如下方法:
    hasNext():判断集合中元素是否遍历完毕,如果没有,就返回true      
    next() :返回下一个元素      
    remove():从集合中删除上一个有next()方法返回的元素。  
      1: for循环和get()方法:
          for(int i=0; i<list.size();i++){    
            System.out.println(list.get(i));   
          }  

      2: 使用 迭代器(Iterator):
          Iterator it=list.iterator();    
           while(it.hashNext()){    
            System.out.println(it.next());  
          }      
  5.  你可以将任何东西放到一个List容器中,并在需要时从中取出。ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。在具体应用时可以根据需要自由选择。前面说的Iterator只能对容器进行向前遍历,而ListIterator则继承了Iterator的思想,并提供了对List进行双向遍历的方法。
    ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与删除元素的速度慢。
    LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。       Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。
     HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。,
  Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。

   6.  而几乎有有的集合都是基于数组来实现的.   因为集合是对数组做的封装,所以,数组永远比任何一个集合要快 ,但任何一个集合,比数组提供的功能要多  
一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。  

二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。 




续集:数组的长度是固定的,只能存储一个类型的元素;但是集合不能存储基本数据类型,而数组却可以。

          ArrayList每次扩容都扩大到原来的1.5倍.

map clear() 删除所有键值对
    containsKey  查询是否包含指定key
    containsValue  查询是否包含指定value
    isEmpty()     是否为空
    put(Map map)
Map中包含一个内部类:Entry。该类封装了一个键值对,它包含了三个方法:
1、Object getKey():返回该Entry里包含的key值。
2、Object getValeu():返回该Entry里包含的value值。
3、Object setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。






参考:http://www.cnblogs.com/wuyifu/p/3741433.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java中List与Array的转换

在Java项目开发过程中,集合之间的互相转换是非常常见的,其中两个比较典型的转换是List和Array之间的转换,本文主要介绍这二者之间的转换、其中存在的一些问题以及解决方案,本文JDK版本为1.8。...
  • Quincuntial
  • Quincuntial
  • 2016年09月02日 14:02
  • 1445

Java中Array、List的区别

Array、List的区别 Array—是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大 的,...
  • u010525970
  • u010525970
  • 2016年08月31日 09:50
  • 5335

kotlin学习集合6(Array、Set、Map)

fun main(args: Array) { /** * 集合, * 集合根据特性分: * 1、有序可重复 -Array * ...
  • tongsiw
  • tongsiw
  • 2017年06月14日 22:45
  • 876

熟练使用Arrays-数组-ArrayList-HashMap等常用Java类型的方法

//HashMap类常用函数 Map map = new HashMap(); //char对应包装类是 Character,不用String for(int k=0;k...
  • doupei2006
  • doupei2006
  • 2013年10月15日 15:59
  • 5995

Collection,List,Set和Map用法和区别

Collection,List,Set和Map用法和区别 作者:zccst     Java spring MVC框架的调用关系是弄明白了,可是发现后面要走的路还很长,有很多东西对我还是很神秘...
  • an341221
  • an341221
  • 2016年01月14日 08:42
  • 3878

java 将list转换为map 的泛型通用方法

将list转换为map 背景:最近使用比较多的mongodb,由于其缺乏表连接的查询,导致我们经常需要将表数据查询到内存中,然后进行匹配连接,组成需要的数据格式,匹配的方式通常是: list1中有l...
  • cherishpart
  • cherishpart
  • 2016年09月16日 14:08
  • 13618

JavaWeb开发中Ajax技术、json与java实现List、Map数据直接传递的研究

JavaWeb开发中Ajax技术、json与java实现List、Map数据直接传递的研究  一、在JavaWeb开发中基于jquery框架来使用ajax技术,Json与后台servlet进行数...
  • hechenghai
  • hechenghai
  • 2015年05月18日 23:36
  • 4275

java中list里面存放map,根据map中的某一个字段进行排序

java中list里面存放map,根据map中的某一个字段进行排序 例如:package com; import java.util.ArrayList; import java.util.Co...
  • g631521612
  • g631521612
  • 2013年04月07日 17:18
  • 7504

Java中Map和List组合使用的例子

使用Java很方便的一条就是Java封装了很多方便使用的Map和List,这是我在开发过程中遇到的问题,通过传入的字符串封装成List>格式,然后进行想要的操作,奉上代码! /* 输入参数: * ...
  • wangshuang1631
  • wangshuang1631
  • 2016年08月10日 15:11
  • 8217

JAVA List<Map>结果集处理方法集合

import org.apache.commons.lang.ObjectUtils;import java.util.*;/** * Created by hurf on 2015/10/12. ...
  • baidu_36415076
  • baidu_36415076
  • 2016年11月16日 20:00
  • 1368
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java之Map,List,Array
举报原因:
原因补充:

(最多只允许输入30个字)