Java学习笔记---集合(二)Map
来源:互联网 发布:淘宝上哪家小叶紫檀好 编辑:程序博客网 时间:2024/06/16 09:05
Java为数据结构中的映射定义了一个接口java.util.Map,它有HashTable、HashMap、WeakHashMap、LinkedHashMap以及TreeMap等实现类。
使用映射的技术要点如下:
HashMap是一个最常用的Map,它根据键的hashCode值存入数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap是无序的,则由iterator迭代出来的值是无序排列。HashMap最多只允许一条记录的键为null,多插入空键记录,数据会出现问题;允许多条记录的值为null;HashMap不支持线程的同步。如果需要同步,可以用Collections的synchronized方法使HashMap具有同步能力;
HashTable实现一个映射,所有的键值必须非空,为了能高效地工作,定义键的类必须实现hashCode()方法和equals()方法。HashTable是无序的,但是运用迭代默认以倒序输出元素。HashTable支持线程同步,即任一时刻只能有一个线程能写hashtable,因此导致HashTable在写入时会比较慢;
TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用迭代器Iterator遍历TreeMap时,得到的记录是排过序的。
该次笔记只是简单介绍一下映射类HashTable、HashMap和TreeMap,并对各映射类进行比较。
源代码:
package corejava;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.HashMap;import java.util.Hashtable;import java.util.Iterator;import java.util.Map;import java.util.TreeMap;/** * * 测试Map * **/public class TestMap {public static void showHashMap(){Map<String, String> hashMap=new HashMap<String, String>();hashMap.put("001", "藻类植物");hashMap.put("002", "菌类植物");hashMap.put("003", "地衣类植物");hashMap.put("004", "蕨类植物");hashMap.put("005", "种子植物");hashMap.put("006", null);//HashMap中允许多个value值为空hashMap.put(null, "苔藓植物");//HashMap只允许一个key为空,否则Iterator<String> it=hashMap.keySet().iterator();//把hashMap的key值集合放到迭代器里,获得key值集合的迭代器System.out.println("1.操作HashMap显示植物种类");while(it.hasNext()){Object key=it.next();//获取每个键KEY值System.out.print(hashMap.get(key)+"\t");}System.out.println("");}public static void showHashtable(){Hashtable<String, String> hashTable=new Hashtable<String, String>();hashTable.put("001", "藻类植物");hashTable.put("002", "菌类植物");hashTable.put("003", "地衣类植物");hashTable.put("004", "蕨类植物");hashTable.put("005", "种子植物");Iterator<String> it=hashTable.keySet().iterator();//把hashTable的key值集合放到迭代器里,获得key值集合的迭代器System.out.println("2.操作hashTable显示植物种类");while(it.hasNext()){;Object key=it.next();//获取每个键KEY值System.out.print(hashTable.get(key)+"\t");}System.out.println("");}public static void showTreeMap(){TreeMap<String, String> treeMap=new TreeMap<String, String>();treeMap.put("001", "藻类植物");treeMap.put("002", "菌类植物");treeMap.put("003", "地衣类植物");treeMap.put("004", "蕨类植物");treeMap.put("005", "种子植物");treeMap.put("006", null);//treeMap中允许value值为空treeMap.put("007", null);Iterator<String> it=treeMap.keySet().iterator();//把treeMap的key值集合放到迭代器里,获得key值集合的迭代器System.out.println("3.操作treeMap显示植物种类");while(it.hasNext()){;Object key=it.next();//获取每个键KEY值System.out.print(treeMap.get(key)+"\t");}System.out.println("");}public static void showArrayList(){ArrayList<String> arraylist=new ArrayList<String>();arraylist.add("001藻类植物");arraylist.add("003地衣类植物");arraylist.add("006苔藓植物");arraylist.add("004蕨类植物");arraylist.add("005种子植物");arraylist.add("002菌类植物");System.out.println("4.排序前植物种类");for (int i = 0; i < arraylist.size(); i++) {System.out.print(arraylist.get(i)+"\t");}System.out.println(); Collections.sort(arraylist);//对列表集合进行排序System.out.println("5.排序后植物种类");for (int i = 0; i < arraylist.size(); i++) {System.out.print(arraylist.get(i)+"\t");}System.out.println(); }public static void main(String[] args) {showHashMap();//操作HashMap显示植物种类showHashtable();showTreeMap();showArrayList();//再次加入arraylist是与Map类做个比较}}
0 0
- Java学习笔记---集合(二)Map
- Java学习笔记-----集合Map
- Java学习笔记之集合Collection&Map
- Java学习笔记(39)-----------Map集合
- Java学习笔记之集合、Iterator、Map
- JAVA学习笔记——Map集合
- JAVA学习笔记——Map集合
- Map集合学习笔记
- Map集合学习笔记
- Map集合学习笔记
- java笔记 Map集合
- Java笔记 - Map集合
- [学习笔记]Java集合框架之Map集合
- [学习笔记]Java集合框架之Map集合
- (37)Java学习笔记——集合框架 / Map集合
- Java学习笔记(十一)--Set集合 Map集合
- Java学习笔记之集合(七):Map集合的方法
- java map集合学习
- 使用 advanced installer 为 winform 做自动更新
- 使用CocoaPods删除已经配置的类库和移除CocoaPods
- maven模块化管理
- hdu1115 Lifting the Stone (求多边形重心)
- 同步异步和阻塞非阻塞
- Java学习笔记---集合(二)Map
- gSOAP Multithreading
- 正则表达式
- iOS开发多线程篇—GCD的基本使用
- Hibernate注解方法使用总结
- 使用CocoaPods为项目配置第三方类库
- MySQL常用操作(笔记比较乱学完整理)
- springmvc的基础环境搭建
- Linux shell 的字符串截取