Map集合

tech2024-05-16  80

Map集合

Map接口的特点:

用于存储任意键值对(Key-Value)键:无序、无下标、不允许重复(唯一)值:无序、无下标、允许重复


Map接口的常用方法

@Test public void Test(){ Map<Integer,String> map =new HashMap<Integer, String>(); //put(),添加Key,和value元素 map.put(1,"张三"); map.put(2,"李四"); map.put(3,"王五"); //get(),根据key来获取value值 map.get(1); //keySet(),返回一个set集合,实现集合遍历功能 for (Object key :map.keySet() ) { System.out.println(key+map.get(key)); } //entrySet(),这是Map接口中的内部接口也是返回一个Set集合, //再使用Entry中的getKey和getValue方法取值 Set<Map.Entry<Integer,String>> entries = map.entrySet(); for (Map.Entry<Integer, String> entry : entries) { System.out.println(entry.getKey()+entry.getValue()); } }

keySet()方法和Map.Entry都是返回Set集合; 但是keySet方法只是获取了Map集合中的Key ,想要获取Value还是得从Map中去拿。 Entry则是把整个键值对拿过来封装成Entry对象,可以直接获取Key和Value,所以Map.Entry效率高


HashMap(重点)

HashMap底层结构为哈希表(数组+链表+红黑树),当链表长度大于8且数组长度大于等于64的时候,就会变成红黑树提高查询修改效率,如果链表长度缩小到6以下就会又变成数组链表形式HashMap允许用null作为Key或Value线程不安全,但是运行效率快

HashTable

线程安全,运行效率慢不允许用null作为Key或Value

Properties

是HashTable的子类,要求Key和Value的类型都是String,通常用于配置文件的读取

最新回复(0)