- map类最大的特点是Map的元素是以键值对的方式存在的,每一个键对应一个唯一的值,但是每一个值可以被多个键对应(也就是说键值是可以是多对一的关系)
- 单纯看键的话,键组成的集合和Set几个并没有什么区别,可以说Set就是值的集合为空的Map。
- HashMap是Map的典型实现类(Hashtable也是一个典型的实现类,但是应该少用它。)
- 以下是Map一些常用方法的示例
//map集合就是存放“键值对”的集合,键与值是单向一对一的关系 //键是不能重复,包括不可以有两个“空”的键,否则会被认为是同一个 package Map; import java.util.HashMap; public class MapTest1 { public static void main(String args[]){ HashMap hashMap = new HashMap(); hashMap.put(null,"zbd" ); // 这一句会被下面的一句“覆盖” hashMap.put(null, null); hashMap.put("a", "A"); System.out.println(hashMap); // 依次输出map里的键值对 System.out.println(hashMap.size()); // size()返回map里的键值对数目 System.out.println(hashMap.keySet()); // keySet()返回所有键 System.out.println(hashMap.get("a")); // get(arg1)返回arg1对应的值 System.out.println(hashMap.isEmpty()); // isEmpty()返回map是否是空map System.out.println(hashMap.entrySet()); // entrySet()返回所有值组成的集合 System.out.println(hashMap.containsKey("a")); // containsKey(arg1)返回是否包含arg1这个键 System.out.println(hashMap.containsValue("A")); // containsValue(arg1)返回是否包含arg1这个值 } } //输出结果: // {null=null, a=A} // 2 // [null, a] // A // false // [null=null, a=A] // true // true
- 表明键值的对应关系是多对一
package Map; import java.util.HashMap; public class MapTest2 { public static void main(String args[]){ HashMap hashMap = new HashMap(); Integer integer = new Integer(4); hashMap.put("i1", integer); hashMap.put("i2", integer); } }
- 介绍一下LinkedHashMap,LinkedHashMap采用双向链表来维护Key集合的次序,也就是说它可以“记住”集合添加元素的顺序,以下为代码示例
//LinkedhashMap采用双向链表来维护key添加的次序 package Map; import java.util.LinkedHashMap; public class LinkedHashMapTest { public static void main(String args[]){ LinkedHashMap linkedHashMap = new LinkedHashMap(); linkedHashMap.put("java1", "java1"); linkedHashMap.put("java2", "java2"); linkedHashMap.put("java3", "java3"); for(Object key : linkedHashMap.keySet()){ System.out.println(linkedHashMap.get(key)); } } } //输出结果 // java1 // java2 // java3
- Properties类是HashMap的子类,它可以操作属性文件
package Map; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; public class PropertiesTest { public static void main (String args[]) throws Exception { Properties properties = new Properties(); properties.setProperty("username", "java1"); properties.setProperty("password", "java2"); properties.store(new FileOutputStream("a.ini"), "comment line"); // 将properties中的键值对保存到当前路径下的a.ini里去 Properties properties1 = new Properties(); properties1.setProperty("gender", "male"); properties1.load(new FileInputStream("a.ini")); // 读取a.ini这个属性文件并且将properties1里的键值对追加到a.ini里去 System.out.println(properties1); } } //输出结果 // {password=java2, gender=male, username=java1} //并且会在当前项目的目录下创建一个a.ini的属性文件,里边有上述键值对数据,内容如下 // #comment line // #Thu Aug 02 20:23:49 CST 2018 // password=java2 // username=java1
java集合(6) Map
猜你喜欢
转载自blog.csdn.net/weixin_39452731/article/details/81366366
今日推荐
周排行