Java的集合详细总结

来源:互联网 发布:算法第四版中文电子书 编辑:程序博客网 时间:2024/05/21 11:58

Java的集合详细总结

Collection是java集合中的根接口,当然只包括只包括Set和List。

1.Collection接口介绍

Collection接口中的方法(不列出所有,详细情况JDK文档)。1. boolean add(E e)  //向集合中添加一个对象的应用。 2. boolean addAll(Collection c) //将其他collection中的所有元素都添加到此 collection中3. void clear() // 移除此 collection 中的所有元素(可选操作)。4. boolean contains(Object o) 如果此collection 包含指定的元素,则返回true 5. int size() //返回此collection中的元素数  6. Iterator<E> iterator() //返回在此collection的元素上的迭代器,可以用来遍历7. boolean isEmpty() //如果此collection不包含元素,则返回true。 8. boolean remove(Object o) //从集合中删除一个对象的引用 9. Object[] toArray() //返回包含此 collection 中所有元素的数组 

2.Iterator接口介绍,它是对collection进行迭代的迭代器

 Iterator接口中,只声明了三个方法。 1.boolean hasNext() //如果仍有元素可以迭代,则返回 true。  2.E next() //返回迭代的下一个元素。  3.void remove() //从迭代器指向的 collection 中移除迭代器返回的最后一个元素

3.下面重点介绍和总结Collection接口的两个子接口 List< E> 和set< E>

List的特点是它里面可以放重复的对象,而且都是有序的,有序可重复,List可以放入null,List有两个重要的实现类,ArrayList()和LinkedList()

  • ArrayList() //他对元素的访问很有效率,但是插入和删除操作慢。
  • LinkList() //它的数据结构是链表结构存在的,所以和ArrayList()的特性相反,它的插入和删除操作快,但是不适合做查询。

    遍历集合的两种方法

    1.使用for循环for(int i=0; i<list.size();i++){      System.out.println(list.get(i));  } 2.使用迭代器Iterator it=list.Iterator();while(it.hasNext()){    System.out.println(it.next());} 

Set中元素的排列是没有顺序的,并且没有重复对象。

Set接口主要实现了两个实现类:

  • HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
  • TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

4.Map< K,V >集合,Map集合里面的数据结构都是键-值对,而且它没有继承Collection接口,只要给出键对象,就会返回对应的值对象。

Map中常用的方法Object put(Object key, Object value) //向集合中加入元素   Object remove(Object key) // 删除与KEY相关的元素   void putAll(Map t) //将来自特定映像的所有元素添加给该映像   void clear() //从映像中删除所有映射 Object get(Object key) //给key对象,得到值对象

Map接口有两个重要的实现类

  • HashMap:就是使用对象的hashCode()进行快速查询的。此方法能够显着提高性能。
  • TreeMap: 基于红黑树数据结构的实现。查看“键”或“键值对”时,它们会被排序(次序由Comparabel或Comparator决定)。TreeMap的特点在 于,你得到的结果是经过排序的。TreeMap是唯一的带有subMap()方法的Map,它可以返回一个子树

5.集合的层次关系

Collection  --List:     --ArrayList / LinkedList / Vector(它是同步的,效率比ArrayList,但是涉及到多线程用它会比较好)  --Set :      --HashSet / TreeSetMap  --HashMap  --HashTable  --TreeMap

6.Map的几种遍历方法

首先说下Map中的几个方法

  • Set< Map.Entry< K,V > > entrySet() //返回此映射中包含的映射关系的 Set 视图。
  • Set< K > keySet() // 返回此映射中包含的键的 Set 视图。
  • Collection< V> values() //返回此映射中包含的值的 Collection 视图。

方法一:利用entrySer()方法,得到包含映射关系的Set集合

 for(Entry<Integer, String> set1: map.entrySet()){        System.out.println(set1.getKey()+"--"+set1.getValue());    }

方法二:用keySet(),values()直接遍历出键和值

for(Integer keys:map.keySet()){        System.out.println(key);    }for(String values:map.values()){        System.out.println(values);    }

方法三:直接用Iterator遍历

Iterator<Entry<Integer, String>> mapIterator=map.entrySet().iterator();while (mapIterator.hasNext()) {    Entry<Integer, String> entry=mapIterator.next();    System.out.println(entry.getKey()+"--"+entry.getValue());}
0 0
原创粉丝点击