如何将map集合中相同value的key取出来
1、这个问题是谁提出来的啊,我不会打死你,只会打残你啊,理想很丰满,现实很残酷
2、解决代码如下
建立一个hashMap,数值类型为String
3、遍历m1的值,然后赋值到al1
找到values值相等的str1
4、输出等于strl值的key值
5、package javaChengShengZhiLu.JavaJichu;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 把Map集合中value值相同的Key取出来
* @author 黄河涛涛h
*
*/
public class Map1 {
public static void main(String[] args) {
//建立一个hashMap,数值类型为String
Map<String,String> m1 = new HashMap<String,String>();
m1.put("one","黄");
m1.put("two","河");
m1.put("three","涛");
m1.put("four","涛");
m1.put("five","h");
m1.put("six","牛");
m1.put("seven","B");
//建立一个数组用来存储m1的数值
List<String> al1 = new ArrayList<String>();
//遍历m1的值,然后赋值到al1
Collection values = m1.values();
for(Iterator iterator1 = values.iterator();iterator1.hasNext();){
al1.add((String) iterator1.next());
}
//System.out.println(al1.size());
//找到values值相等的str1
String str1 = null;
for(int i=0;i<al1.size()-1;i++){
for(int j=i+1;j<al1.size();j++){
if(al1.get(i)==al1.get(j)){
System.out.println(al1.get(i));
str1 = al1.get(i);
}
}
}
//输出等于strl值的key值
Collection col1 = m1.entrySet();
String str2 = null;
for(Iterator ite2 = col1.iterator();ite2.hasNext();){
Object obj = ite2.next();
str2 = obj.toString();
if(str1.equals(str2.substring(str2.indexOf("=")+1,str2.length()))){
System.out.println(str2.substring(0,str2.lastIndexOf("=")));
}
}
}
}
6、代码运行结果