Map 键值对,数据结构测试代码如下
MapTest
package ds.collections.maps;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.LinkedHashMap;
/**
* Map
* @author Hust
* @Time 2011-10-23
*/
public class MapTest {
public static void main(String[] args) {
//testHashMap();
//hashMapTest();
//treeMapTest();
linkedHashMapTest();
}
/**
* 测试HashMap
*/
public static void testHashMap(){
//无序,hashMap本身的实现不是同步的即不是线程安全的
//如想设为线程安全,初始化时加上:Collections.synchronizedMap
Map<Integer,String> thMap = Collections.synchronizedMap(new HashMap<Integer, String>(32));
thMap.put(1232, "12323321");
thMap.put(1, "1233421");
thMap.put(4, "12323321");
thMap.put(123, "23455");
//System.out.println(thMap.hashCode()+"_"+thMap.size());
//thMap.remove(123);
thMap.put(123, "234");
thMap.put(null, "234");
//System.out.println(thMap.size());
//System.out.println(thMap.isEmpty());
//System.out.println(thMap.containsKey(123));
//System.out.println(thMap.containsValue("123321"));
//System.out.println(thMap.get(123));
//System.out.println(thMap.values());
for(Entry<Integer,String> b : thMap.entrySet()) {
System.out.print(b.getKey()+"_");//获取键
System.out.println(b.getValue());//获取值
}
//thMap.clear();
System.out.println("=thMap.size() "+thMap.size());
//Map.Entry--Map的内部类,描述Map中的按键/数值对。
Map<Integer,String> linkMap = new LinkedHashMap<Integer, String>(thMap);
for(Entry<Integer,String> b : linkMap.entrySet()) {
System.out.print(b.getKey()+"_");//获取键
System.out.println(b.getValue());//获取值
}
}
/**
* 无序 适合 插入、删除和定位元素容量小时具有很快的访问速度
* 容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢
*/
public static void hashMapTest() {
System.out.println("------hashMapTest------");
Map<String,String> map = new HashMap<String,String>();
map.put("1", "Value 1");
map.put("2", "Value 2");
map.put("3", "Value 3");
map.put("4", "Value 4");
map.put("F", "Value F");
map.put("Q", "Value Q");
//必要时初始化时控制Map大小
//其负载因子默认为0.75,容量(大小)默认为16, 如果(负载因子)*(容量)〉map大小,则调整Map大小
//8 * 0.75 = 6
Map<String,String> map2 = new HashMap<String,String>(8);
map2.putAll(map);
//可对之进行迭代,Entry,Map的内部类,描述Map中的按键/数值对。
//Map.entrySet返回map的collection视图
Iterator<Entry<String, String>> it = map2.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String,String> e = (Map.Entry<String,String>) it.next();
System.out.println(e.getKey() + " _ " + e.getValue());
}
}
/**
* TreeMap取出来的是排序后的键值对。
* 它是sortedMap的唯一实现
*/
public static void treeMapTest() {
System.out.println("------treeMapTest------");
Map<String,String> map = new TreeMap<String,String>();
map.put("1", "Value 1");
map.put("F", "Value F");
map.put("Q", "Value Q");
map.put("3", "Value 2");
map.put("5", "Value 5");
map.put("4", "Value 4");
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String,String> e = (Map.Entry<String,String>) it.next();
System.out.println(e.getKey() + " _ " + e.getValue());
}
System.out.println("------treeMapTest2------");
//TreeMap取出来的是排序后的键值对。它是sortedMap的唯一实现。
//默认按键对象升序排列,如想降序排列,实现方式为将Collections.reverseOrder()作为TreeMap的构造方法。
Map<String,String> tmap = new TreeMap<String,String>(Collections.reverseOrder());
tmap.putAll(map);
Iterator<Entry<String, String>> tmapit = tmap.entrySet().iterator();
while (tmapit.hasNext()) {
Map.Entry<String,String> e = (Map.Entry<String,String>) tmapit.next();
System.out.println( e.getKey() + " _ " + e.getValue());
}
}
/**
* 保存了记录的插入顺序,即先插入的先遍历到
* 也可以在构造时用带参数,按照应用次数排序。
*/
public static void linkedHashMapTest() {
System.out.println("------linkedHashMapTest------");
Map<String,String> map = new LinkedHashMap<String,String>();
map.put("1", "Value 1");
map.put("2", "Value 2");
map.put("5", "Value 3");
map.put("4", "Value 4");
map.put("F", "Value F");
map.put("Q", "Value Q");
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String,String> e = (Map.Entry<String,String>) it.next();
System.out.println(e.getKey() + " _ " + e.getValue());
}
}
}
分享到:
相关推荐
java map 缓存 //毫秒计算 this.timeOut = timeOut*1000;
java Map 转为 Obj Obj 转为 Map
java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) {
private static SortedMap, Integer> mapSortByKey(Map, Integer> unsort_map) { TreeMap, Integer> result = new TreeMap, Integer>() Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort...
是java Map中几种常用的遍历方法,适合于新手,谢谢
12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类....
13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.java...
Java Map 集合类简介,Collection,Map,ArrayList
java map转实体可以利用java的反射去封装,于是就在hibernate的工具类下试着封装了下,封装完了之后感觉没必要,这完全就可以提取出来变成一个独立的工具类,而不仅仅局限于hibernate了,这样既可以满足一个hql查询...
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List ...
java Map转Bean Bean转Map Map排序
java Map实现的cache manager,定时清除缓存里面的值,使数据一致保持最新
Java Map按键排序和按值排序 可以java map按照key值排序
java Map转换成bean,利用java反射以及java和bean包将map,Object>类型集合转换成需要的javaBean
java map排序,hashmap,linkedmap,treemap,hashtable
这里有几个很经典的Java map 集合排序的例子,大家可以试试
1、List集合:ArrayList、LinkedList、Vector等 2、Vector是List接口下线程安全的集合 3、List是有序的 4、Array
java开发的电子地图源码,电子地图放大、缩小、漫游、测距,图层查询,最短路径计算等功能 使用eclipse3.4版本开发 并调试完美运行成功 此源码为开发电子地图导航功能网站的得力利器
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。...本例将着重介绍核心 Java 发行套件中附带的 Map,同时还将介绍如何采用或实现更适用于您应用程序特定数据的专用 Map