Java集合中的框架2
一、HashMap类和Hashtable类的用法TreeMap与ConcurrentHashMap
Map接口--集合接口--主要处理的是键值对结构的数据
键值对结构的数据---就是一个完成的数据是由键和键所对应的值组合而成的数据
例如:
书的目录就是一种键值对结构
【标题----页码】
Map接口下的子类
1.HashMap类--public class HashMap【基于哈希表的实现的Map接口】
允许null的值和null键
数据保存是无序的
不能有重复的键,重复的键被算作是一个数据。
构造方法:
HashMap() 构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。 |
HashMap(int initialCapacity) 构造一个空的 HashMap具有指定的初始容量和默认负载因子(0.75)。 |
HashMap(int initialCapacity, float loadFactor) 构造一个空的 HashMap具有指定的初始容量和负载因子。 |
HashMap(Map<? extends K,? extends V> m) 构造一个新的 HashMap与指定的相同的映射 Map 。 |
package com.wangxing.hashmaptest;
import java.util.HashMap;
public class HashMapTest1 {
public static void main(String[] args) {
//Map 接口下的子类
//HashMap类
//允许null的值和null键
//数据保存时无序的
//不能有重复的键,重复的键被算作是一个数据
//构造方法:
//HashMap()构造一个空的HashMap,默认初始容量(16)和默认负载系数(0.75)
HashMap<Object, Object> hashMap=new HashMap<>();
//HashMap(int initialCapacity)构造一个空的HashMap具有指定的初始容量和默认负载因子(0.75)
HashMap<Object, Object> hashMap2=new HashMap<>(30);
//HashMap(int initialCapacity,float loadFactor)构造一个空的HashMap具有指定的初始容量和指定的负载因子
HashMap<Object, Object> hashMap3=new HashMap<>(30, 0.5F);
//HashMap(Map m)构造一个新的HashMap与指定的相同的映射Map
HashMap<Object, Object> hashMap4=new HashMap<>(hashMap3);
}
}
实例方法:
void |
clear() 清空集合。 |
||
Object |
put(Object key, Object value) 向集合中添加键值对数据 |
||
boolean |
containsKey(Object key) 判断集合中是否包含指定的键 |
||
boolean |
containsValue(Object value) 判断集合中是否包含指定的值 |
||
Object |
get(Object key) 根据指定的键得到该键对应的值 |
||
boolean |
isEmpty() 判断集合是否为空。 |
||
int |
size() 得到集合中键值对元素的个数 |
||
V |
remove(Object key) 根基指定的键删除对应的键值对数据值 |
||
Set |
keySet() 得到集合中所有的键保存到Set集合中 |
||
Collection |
values() 得到集合中所有的值保存到Collection集合中 |
||
Set<Map.Entry<K,V>> |
entrySet() 得到集合中所有的键值对数据Set集合中 |
package com.wangxing.hashmaptest;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class HashMapTest2 {
public static void main(String[] args){
//HashMap类的常用实例方法
//允许null的值和null键
//数据保存是无序的
//不能有重复的键,重复的键被算作是一个数据
HashMap<Object, Object> hashMap=new HashMap<>();
//Object put(Object key,Object value)向集合中添加键值对数据
hashMap.put("hello", 1234);
hashMap.put(1234, "hello");
hashMap.put(12.5, true);
hashMap.put(false, 123.1);
hashMap.put(null, "null键");
hashMap.put("null值", null);
hashMap.put(null, null);//会被算作一个
// int size()得到集合中键值对元素的个数
System.out.println("size=="+hashMap.size());
//boolean containsKey(Object key)判断集合中是否包含指定的键
String containsKey=(hashMap.containsKey("helloworld"))?"存在":"不存在";
System.out.println("containskey=="+containsKey);
//boolean containsValue(Object value)判断集合中是否存在指定的值
String containsValue=(hashMap.containsValue("helloworld"))?"存在":"不存在";
System.out.println("containsvaule=="+containsVa