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中Array/List/Map/Object与Json互相转换详解

JSON(JavaScript Object Notation): 是一种轻量级的数据交换格式 一、JSON建构有两种结构:对象和数组 1、对象:对象在js中表示为“{}”扩起来的内容,数...

java 集合类Array、List、Map区别和联系

Java集合类主要分为以下三类: 第一类:Array、Arrays 第二类:Collection :List、Set 第三类:Map :HashMap、HashTable   ...

Java中 set,list,array(集合与数组)、Map相互转换

开发工作中经常会用到一些集合或数组类型的转换,这里总结以下: 列表转换数组 public static Object[] List2Array(List oList) {         O...
  • jia635
  • jia635
  • 2014年07月14日 23:00
  • 757

java 集合类Array、List、Map区别和联系

java集合类主要分为以下三类:第一类:Array、Arrays 第二类:Collection :List、Set第三类:Map :HashMap、HashTable 一、Array , Arrays...

Java框架--IOC javabean注入(List/Map/Set/Properties/Array/Date)

基础类Teacher/Student package com.ioc; import java.util.Date; import java.util.HashMap; import java.ut...

Java之数组array和集合list、set、map

世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的人想有没有重复的数组,所以有了set 有人想有自动排序的组数,所以有了...
  • wysnxzm
  • wysnxzm
  • 2017年03月02日 22:15
  • 98

Java基础:循环迭代Array/List/Set/Map集合 增强for循环

书香年华 琅琅书声如春风拂过千年时空 少年啊壮志在胸赋首辞让人感动!

27-Object-List-Map-Array 转成json数据

  • 2017年02月13日 08:59
  • 1.69MB
  • 下载

Array、List、Set、与Map

最近经历了几次面试,发现Java基础还是很重要的,所以好好弥补之前遗留的漏洞还是很有必要的。基础不牢固,就会越来越浮,无法走的深入。         这篇文章,主要总结了映射、集合等容器的相关联系与区...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java之Map,List,Array
举报原因:
原因补充:

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