Java集合框架

    xiaoxiao2025-02-27  23

    java常用集合框架类图:

    一句话描述常用集合

    摘自《JAVA核心技术I》

    ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 HashSet 一种没有重复元素的无序集合 TreeSet 一种有序集 EnumSet 一种包含枚举类型值得集 LinkedHashSet 一种可以记住元素插入次序的集 HashMap 一种存储键/值关联的数据结构 TreeMap 一种键值有序排列的映射表 EnumMap 一种键值属于枚举类型的映射表 LinkedHashMap 一种可以记住键/值添加次序的映射表 WeakHashMap 一种其值无用武之地后可以被垃圾回收器回收的映射表

    ArrayList和LinkedList的区别

    参考http://blog.csdn.net/qianzhiyong111/article/details/6678035 http://www.importnew.com/6629.html

    1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

    结论: 对于需要快速插入,删除元素,应该使用LinkedList。 对于需要快速随机访问元素,应该使用ArrayList。

    HashMap与Hashtable的区别

    参考http://blog.csdn.net/qianzhiyong111/article/details/6677885

    HashMap允许key和value为null,Hashtable不允许key和value为null;HashMap不是线程同步的,Hashtable是线程同步的;HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

    HashMap的遍历

    使用keySet,for-each,HashMap.get()使用entry package com.example.collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTest { public static void main(String[] args) { // TODO Auto-generated method stub Map<String,String> hashMap = new HashMap<String,String>(); hashMap.put("China", "Chinese"); hashMap.put("America", "English"); hashMap.put("Germany", "German"); hashMap.put("France", "French"); //第一种遍历,使用keySet,for-each,HashMap.get() System.out.println("*****first keySet*****"); Set<String> keys = hashMap.keySet(); for(String key : keys) { System.out.println("key: " + key + ", value: " + hashMap.get(key)); } //第二种,使用entry System.out.println("*****second entry*****"); for(Map.Entry<String, String> entry : hashMap.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); System.out.println("key: " + key + ", value: " + value); } } }
    转载请注明原文地址: https://ju.6miu.com/read-1296715.html
    最新回复(0)