Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在映射中获取特定值的键_Java_Map_Hashmap - Fatal编程技术网

Java 如何在映射中获取特定值的键

Java 如何在映射中获取特定值的键,java,map,hashmap,Java,Map,Hashmap,我试图在地图中找到最大值并得到它对应的键 这是我的maxMin= {3=0.1518355013623417,2=0.118159172647247849,1=0.246748197744391, 4=0.04812703040826949} for(字符串键集:maxMin.keyset()){ 双值=maxMin.get(键集); 如果(值最大值){ 最大值=数值; } } 我找到了最大值,但如何设置相应的键?这个怎么样: How about this: int pos = 0; int

我试图在地图中找到最大值并得到它对应的键

这是我的maxMin=

{3=0.1518355013623417,2=0.118159172647247849,1=0.246748197744391, 4=0.04812703040826949}

for(字符串键集:maxMin.keyset()){
双值=maxMin.get(键集);
如果(值<最小值){
最小值=数值;
}
如果(值>最大值){
最大值=数值;
}
}
我找到了最大值,但如何设置相应的键?

这个怎么样:
How about this:
int pos = 0;
int maxPos = 0;
for(String keyset: maxMin.keySet()){
 pos = pos + 1;
 double values = maxMin.get(keyset);
  if (values < min) {
       min = values;
  }
  if (values > max) {
       max = values;
       maxPos = pos;
  }
}

Set<Integer> keySet = maxMin.keySet();
List<Integer> keyList = new ArrayList<Integer>(keySet);
Integer key = keyList.get(maxPos);
int pos=0; int-maxPos=0; 对于(字符串键集:maxMin.keyset()){ pos=pos+1; 双值=maxMin.get(键集); 如果(值<最小值){ 最小值=数值; } 如果(值>最大值){ 最大值=数值; maxPos=pos; } } 设置keySet=maxMin.keySet(); List keyList=新数组列表(键集); 整数键=keyList.get(maxPos);
字符串minkey=null;
字符串maxkey=null;
对于(字符串键集:maxMin.keyset()){
双值=maxMin.get(键集);
如果(值<最小值){
最小值=数值;
minkey=键集;
}
如果(值>最大值){
最大值=数值;
maxkey=键集;
}
}

这将为您提供最低和最高值的键:

final Map<String, Integer> map = new HashMap<>();

map.put("lowest", 1);
map.put("5", 5);
map.put("highest", 10);
map.put("3", 3);

Map.Entry<String, Integer> min = null;
Map.Entry<String, Integer> max = null;

for (final Map.Entry<String, Integer> entry : map.entrySet()) {
    if ((null == min) && (null == max)) {
        min = entry;
        max = entry;
        continue;
    }

    if (entry.getValue() < min.getValue()) {
        min = entry;
    }

    if (entry.getValue() > max.getValue()) {
        max = entry;
    }
}

System.out.println("The key for the lowest value is: " + min.getKey());
System.out.println("The key for the highest value is: " + max.getKey());
final Map=new HashMap();
地图放置(“最低”,1);
地图。放置(“5”,5);
地图放置(“最高”,10);
地图放置(“3”,3);
Map.Entry min=null;
Map.Entry max=null;
对于(最终Map.Entry:Map.entrySet()){
如果((空==最小值)&&(空==最大值)){
最小值=输入;
最大值=输入;
继续;
}
if(entry.getValue()max.getValue()){
最大值=输入;
}
}
System.out.println(“最小值的键是:“+min.getKey()”);
System.out.println(“最大值的键是:“+max.getKey()”);
for(条目:maxMin.entrySet()){
if(entry.getValue()max){
max=entry.getValue();
maxKey=entry.getKey();
}
}

与您可以使用的密钥集相关,并且可能重复使用-1,因为:2次访问密钥集,创建一个ArrayList是很容易避免的。同意,我误解了这一点,因为您给出的解决方案很简单:)
String minkey = null;
String maxkey = null;
for(String keyset: maxMin.keySet()){
  double values = maxMin.get(keyset);
  if (values < min) {
     min = values;
     minkey = keyset;
  }
  if (values > max) {
     max = values;
     maxkey = keyset;
  }
}
final Map<String, Integer> map = new HashMap<>();

map.put("lowest", 1);
map.put("5", 5);
map.put("highest", 10);
map.put("3", 3);

Map.Entry<String, Integer> min = null;
Map.Entry<String, Integer> max = null;

for (final Map.Entry<String, Integer> entry : map.entrySet()) {
    if ((null == min) && (null == max)) {
        min = entry;
        max = entry;
        continue;
    }

    if (entry.getValue() < min.getValue()) {
        min = entry;
    }

    if (entry.getValue() > max.getValue()) {
        max = entry;
    }
}

System.out.println("The key for the lowest value is: " + min.getKey());
System.out.println("The key for the highest value is: " + max.getKey());
    for (Entry<String, Double> entry : maxMin.entrySet()) {
        if (entry.getValue() < min) {
            min = entry.getValue();
            minKey = entry.getKey();
        }
        if (entry.getValue() > max) {
            max = entry.getValue();
            maxKey = entry.getKey();
        }
    }