N.1 Map接口介绍
|
1)Map代表了一个映射表,用于保存键值对。 map不能包含重复的key,但是value可以重复。每个key只能对应一个value。 |
————————————————————————

————————————————————————

————————————————————————
|
2)Map接口的方法 |
|
import java.util.Collection; import java.util.Set; public interface Map<K,V> { int size(); boolean isEmpty();//如果此地图不包含键值映射,则返回 true boolean containskey(Object key); boolean containsValue (Object value); V get (Object key); //put不仅可以添加,还可以修改,如果是修改,那么会返回I旧value V put (K key, V value); //删除指定key所属的Entry,也就删除了value V remove (Object key); //从该地图中删除所有的映射 void clear (); //返回一个所有key集合 Set<K> keyset (); //返回所有values Collection<V> values (); /*Map.Entry<K, V>表示Entry<K, V>属于Map的一个内部类entryset();返回 类型必须是Entry<K, V>类型*/ Set<Map. Entry<K, V>> entrySet (); // 这里只是展示,所以会报红 } |
N.2 HashMap
N.2.1 HashMap的元素添加
————————————————————————

————————————————————————
|
1)HashMap实现了Map接口,HashMap是无序的。HashMap不能包含重复的key,但是value可以重复 它不保存元素的插入顺序,在内部也不保证按照元素的大小顺序排列。 |
|
class Student implements Comparable<Student> { 这里略写请复制set接口的代码,一模一样的} |
|
2)HashMap不允许重复的key,它通过key的equals方法来判断。作为HashMap的key必须重写equals方法,同时也要重写hashCode方法。get方法通过key来获取value |
|
class Day1704{ public static void main(String[] args){ Map<String, Student> map = new HashMap<String, Student>(); //put方法将键值对加入到映射表中 map. put ("1001", new Student (1, "zhangsan", 20)); map. put ("1002", new Student (2, "lisi", 21)); map. put ("1003", new Student (3, "wangwu", 22));//value允许重复(不管有没有重写equals方法,value都可以加入,因为map是允许value重复的) map. put ("1004", new Student (1, "zhangsan", 20)); Student sl = map.get("1004"); System.out.println(sl ); Student s2 = map.get("1005");//Student [sno=1, name=zhangsan1] System.out.println(s2) ;//nul1 } } |
以下是jdk1.7的HashMap;

N.3 LinkedHashMap

N.4 TreeMap

N.5 ConcurrentHashMap

N.6 集合容量值
|
lass |
初始大小 |
加载因子 |
扩容倍数 |
底层实现 |
是否线程安全 |
同步方式 |
|
ArrayList |
10 |
1 |
1.5倍 |
Object数组 |
线程不安全 |
- |
|
Vector |
10 |
1 |
2倍 |
Object数组 |
线程安全 |
synchronized |
|
HashSet |
16 |
0.75f |
2倍 |
HashMap<E,Object> |
线程不安全 |
- |
|
HashMap |
16 |
0.75f |
2倍 |
Map.Entry<k,v> |
线程不安全 |
- |
|
HashTable |
11 |
0.75f |
2倍+1 |
Hashtable.Entry<k,v> |
线程安全 |
synchronized |
Map接口代表映射表,存储键值对,不允许重复的key。HashMap是Map的实现,无序且允许value重复,需重写key的equals和hashCode方法。其他实现包括LinkedHashMap、TreeMap和ConcurrentHashMap,分别关注插入顺序、排序和线程安全。不同集合的初始容量、加载因子和扩容策略也有所差异。
3100

被折叠的 条评论
为什么被折叠?



