25.Map集合

来源:互联网 发布:php 图片缩略图 编辑:程序博客网 时间:2024/05/20 17:41
Map集合常用方法
 void clear() 
          从此映射中移除所有映射关系(可选操作)。 
 boolean containsKey(Object key) 
          如果此映射包含指定键的映射关系,则返回 true。 
 boolean containsValue(Object value) 
          如果此映射将一个或多个键映射到指定值,则返回 true。 
 Set<Map.Entry<K,V>> entrySet() 
          返回此映射中包含的映射关系的 Set 视图。 
 boolean equals(Object o) 
          比较指定的对象与此映射是否相等。 
 V get(Object key) 
          返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 
 int hashCode() 
          返回此映射的哈希码值。 
 boolean isEmpty() 
          如果此映射未包含键-值映射关系,则返回 true。 
 Set keySet() 
          返回此映射中包含的键的 Set 视图。 
 Object put(K key, V value) 
          将指定的值与此映射中的指定键关联(可选操作)。 
 Object remove(Object key) 
          如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 
 int size() 
          返回此映射中的键-值映射关系数。 
 Collection values() 

          返回此映射中包含的值的 Collection 视图。 

import java.util.*;public class HelloWorld {public static void main(String[] args) {//创建Map集合Map Persons = new HashMap();//默认初始容量16,默认加载因子0.75//存储键值对Persons.put("1000","GJQ");Persons.put("1000","YLZ");Persons.put("1002","GYF");Persons.put("1003","GYC");Persons.put("1004","JACK");Persons.put("1005","TOM");//判断键值对个数//Map 中key是无序不可重复的,和HashSet相同System.out.println(Persons.size());//5//判断集合中是否包含这样的KeySystem.out.println(Persons.containsKey("1000"));//true//判断集合是否包含这样的value//(由此也可以看出相同的K后面的会把前面的覆盖)System.out.println(Persons.containsValue("GJQ"));//false//通过key获取valueString k = "1002";System.out.println(Persons.get(k));//GYF//通过key删除键值对Persons.remove("1000");System.out.println(Persons.size());//4//获取所有的valueCollection values = Persons.values();Iterator it = values.iterator();while(it.hasNext()) {System.out.println(it.next());// 获取所有的keySet keys = Persons.keySet();Iterator it2 = keys.iterator();while(it2.hasNext()) {System.out.println("id--->"+it2.next());}}}}

Properties:

  ashMap默认初始化容量 16 ,默认加载因子0.75
  Hashtable默认初始化容量11,默认加载因子0.75
  java.util.Properties;也是由key和value组成,但两者都是字符串类型

import java.util.*;public class HelloWorld {public static void main(String[] args) {//创建属性类对象Properties p = new Properties();//存p.setProperty("username", "shoot");p.setProperty("password","tiger");p.setProperty("url","www.baidu.com");//取,通过key获取valueString v1 = p.getProperty("username");String v2 = p.getProperty("password");String v3 = p.getProperty("url");System.out.println(v1);System.out.println(v2);System.out.println(v3);}}


TreeMap

自动排序 的实现

(方式一)

import java.util.*;public class HelloWorld {public static void main(String[] args) {//创建SortedSet集合的时候提供一个比较器SortedMap users = new TreeMap();//准备元素User u1 = new User("gyc",18);User u2 = new User("gyf",19);User u3 = new User("ylz",20);User u4 = new User("gjq",21);//添加元素users.put(u1,4);users.put(u2,3);users.put(u3,2);users.put(u4,1);//遍历Set keys = users.keySet();Iterator it  = keys.iterator();while(it.hasNext()) {Object k = it.next();Object v = users.get(k);System.out.println(k+"—————>"+v);}}}class User implements Comparable{String name;int age;User(String name,int age){this.name = name;this.age = age;}public String toString() {return "User:"+name+"[age="+age+"]";}public int compareTo(Object o) {int age1 = this.age;int age2 = ((User)o).age;if(age1 < age2) {return 1;}else if(age1 == age2) {return 0;}else {return -1;}}}

(方式二)

/*   java.util.Comparator;   单独编写一个比较器 */import java.util.*;public class HelloWorld {public static void main(String[] args) {//创建SortedSet集合的时候提供一个比较器SortedMap users = new TreeMap(new UserComparator());//准备元素User u1 = new User("gyc",18);User u2 = new User("gyf",19);User u3 = new User("ylz",20);User u4 = new User("gjq",21);//添加元素users.put(u1,4);users.put(u2,3);users.put(u3,2);users.put(u4,1);//遍历Set keys = users.keySet();Iterator it  = keys.iterator();while(it.hasNext()) {Object k = it.next();Object v = users.get(k);System.out.println(k+"—————>"+v);}}}class User{String name;int age;User(String name,int age){this.name = name;this.age = age;}public String toString() {return "User:"+name+"[age="+age+"]";}}//单独编写一个比较器class UserComparator implements Comparator{//按年龄排序public int compare(Object o1, Object o2){int age1 = ((User)o1).age;int age2 = ((User)o2).age;if(age1 == age2) {return 0; }else if(age1>age2) {return 1;}else {return -1;}}}


原创粉丝点击