Map集合的各种使用方法附带keySet()和entrySet()的使用

说明:map集合创建对象的时候创建一个子类对象map对应有(hashMap,TreeMap,Hashtable);

一、例子一:

1、keySet()的使用:

Map<String, String> map = new HashMap<String, String>();
map.put("01", "zhangsan1");
map.put("02", "zhangsan2");
map.put("03", "zhangsan3");
map.put("04", "zhangsan4");

// 先获取map集合中的所有键的集合keyset();
Set<String> keySet = map.keySet();

Iterator<String> iterator = keySet.iterator();
String content = "";
while (iterator.hasNext()) {
String next = iterator.next();
String string = map.get(next);
String contents = "";
if (iterator.hasNext()) {
contents = next + "=" + string + "&";
} else {
contents = next + "=" + string;
}
System.out.println(contents);
content += contents;
}
System.out.println(content);

2.entrySet()的使用

Map<String, String> map = new HashMap<String, String>();
map.put("01", "zhangsan1");
map.put("02", "zhangsan2");
map.put("03", "zhangsan3");
map.put("04", "zhangsan4");
// 将map集合中的映射关系取出,存入到set集合中。
Set<Entry<String, String>> entrySet = map.entrySet();


Iterator<Entry<String, String>> iterator = entrySet.iterator();
while (iterator.hasNext()) {
Entry<String, String> next = iterator.next();
String key = next.getKey();
String value = next.getValue();


System.out.println("key:" + key + "  value:" + value);
}

二、例子二:

HashMap<Student, String> map = new HashMap<Student, String>();
map.put(new Student("张三", 21), "杭州");
map.put(new Student("李四", 22), "北京");
map.put(new Student("张五", 23), "广州");
map.put(new Student("李三", 24), "上海");
map.put(new Student("小李子", 25), "江西");

Set<Student> keySet = map.keySet();
Iterator<Student> iterator = keySet.iterator();
while (iterator.hasNext()) {
Student next = iterator.next();
String string = map.get(next);

System.out.println(next.getName()+"  "+next.getAge()+"  "+string);
}
System.out.println("***************************************");

Set<Entry<Student, String>> entrySet = map.entrySet();
Iterator<Entry<Student, String>> iterator2 = entrySet.iterator();

while (iterator2.hasNext()) {
Entry<Student, String> next = iterator2.next();
Student key = next.getKey();
String value = next.getValue();
System.out.println(key.getName()+" "+key.getAge()+" "+value);
}

创建的student类:

public class Student implements Comparable<Student> {
private String name;
private int age;

public Student(String name, int age) {
this.name = name;
this.age = age;
}

public int compareTo(Student s) {
int num = new Integer(this.age).compareTo(new Integer(s.age));
if (num == 0) {
return this.name.compareTo(s.name);
}
return num;
}

public int hashCode() {
return name.hashCode() + age * 34;
}

public boolean equals(Object obj) {
if (!(obj instanceof Student)) {
throw new ClassCastException("类型不匹配");
}
Student s = (Student) obj;
return this.name.equals(s.name) && this.age == s.age;
}

public String toString() {
return "name:" + this.name + "age:" + this.age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}

三、例子三:

HashMap<String, ArrayList<Student>> newHashMap = new HashMap<String, ArrayList<Student>>();

ArrayList<Student> list = new ArrayList<Student>();
list.add(new Student("张三", 001));
list.add(new Student("李四", 002));
list.add(new Student("王麻子", 003));

newHashMap.put("老子呵呵。。。", list);
newHashMap.put("他爹哈哈。。。", list);

Iterator<String> iterator = newHashMap.keySet().iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);
ArrayList<Student> arrayList = newHashMap.get(next);
getArraylist(arrayList);
}

上面使用的getArray类:

public static void getArraylist(ArrayList<Student> list){
Iterator<Student> iterator = list.iterator();
while (iterator.hasNext()) {
Student next = iterator.next();
System.out.println(next.getName()+" : "+next.getAge());
}
}

四、例子四:

HashMap<String, HashMap<String, String>> map = new HashMap<String, HashMap<String, String>>();


HashMap<String, String> yureMap = new HashMap<String, String>();


HashMap<String, String> zhenMap = new HashMap<String, String>();


map.put("碉堡了", yureMap);
map.put("厉害", zhenMap);


yureMap.put("01", "liuping");
yureMap.put("02", "diaobao");
yureMap.put("03", "lisi");


zhenMap.put("01", "liuping");
zhenMap.put("02", "liuping2");
zhenMap.put("04", "liuping4");
zhenMap.put("03", "liuping3");

Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String next = iterator.next();
HashMap<String, String> hashMap = map.get(next);
System.out.println(" "+next);
getEnteny(hashMap);
}

上面使用到的getEnteny():

public static void getEnteny(HashMap<String, String> map) {
Set<String> keySet = map.keySet();
Iterator<String> iterator = keySet.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
String string = map.get(next);
System.out.println(next + " : " + string);
}
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值