Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 如何获取HashMap中的前两项<;字符串,整数>;?_Java - Fatal编程技术网

Java 如何获取HashMap中的前两项<;字符串,整数>;?

Java 如何获取HashMap中的前两项<;字符串,整数>;?,java,Java,我一直在尝试获取前两个对象的方法 我已经尝试过使用数组的转换, 也用于迭代器 每次我撞车 String[] strArr = (String[])map.keySet().toArray(); //crash Integer[] integerArr = (Integer[])map.values().toArray(); String string1 = strArr[0]; int value1 = integerArr[0]; Stri

我一直在尝试获取前两个对象的方法 我已经尝试过使用数组的转换, 也用于迭代器

每次我撞车

    String[] strArr = (String[])map.keySet().toArray();    //crash
    Integer[] integerArr = (Integer[])map.values().toArray();


    String string1 = strArr[0];
    int value1 = integerArr[0];


    String string2 = strArr[1];
    int value2 = integerArr[1];

首先,您应该意识到在
HashMap
中没有“前2个对象”,因为在
HashMap
中没有顺序

在迭代
HashMap
时,您可以获得恰好最先返回的任意两个条目:

String[] keys = new String[2];
Integer[] values = new Integer[2];
Iterator<Map.Entry<String,Integer>> iterator = map.entrySet().iterator();
for (int i = 0; i < 2 && iterator.hasNext(); i++) {
    Map.Entry<String,Integer> entry = iterator.next();
    keys[i] = entry.getKey();
    values[i] = entry.getValue();
}
String[]keys=新字符串[2];
整数[]值=新整数[2];
迭代器迭代器=map.entrySet().Iterator();
对于(int i=0;i<2&&iterator.hasNext();i++){
Map.Entry=iterator.next();
keys[i]=entry.getKey();
values[i]=entry.getValue();
}

首先,您应该意识到在
HashMap
中没有“前两个对象”,因为在
HashMap
中没有排序

在迭代
HashMap
时,您可以获得恰好最先返回的任意两个条目:

String[] keys = new String[2];
Integer[] values = new Integer[2];
Iterator<Map.Entry<String,Integer>> iterator = map.entrySet().iterator();
for (int i = 0; i < 2 && iterator.hasNext(); i++) {
    Map.Entry<String,Integer> entry = iterator.next();
    keys[i] = entry.getKey();
    values[i] = entry.getValue();
}
String[]keys=新字符串[2];
整数[]值=新整数[2];
迭代器迭代器=map.entrySet().Iterator();
对于(int i=0;i<2&&iterator.hasNext();i++){
Map.Entry=iterator.next();
keys[i]=entry.getKey();
values[i]=entry.getValue();
}

HashMap中没有真正的排序概念。如果需要插入顺序,请使用LinkedHashMap;如果需要字典顺序,请使用树映射。但不管怎样,这里是你想要它的方式

String[]keys=新字符串[2];
整数[]整数=新整数[2];//int[]也可以工作
迭代器it=map.entrySet().Iterator();
对于(int i=0;i<2&&it.hasNext();i++){
Map.Entry e=it.next();
keys[i]=e.getKey();
ints[i]=e.getValue();
}

HashMap中没有真正的排序概念。如果需要插入顺序,请使用LinkedHashMap;如果需要字典顺序,请使用树映射。但不管怎样,这里是你想要它的方式

String[]keys=新字符串[2];
整数[]整数=新整数[2];//int[]也可以工作
迭代器it=map.entrySet().Iterator();
对于(int i=0;i<2&&it.hasNext();i++){
Map.Entry e=it.next();
keys[i]=e.getKey();
ints[i]=e.getValue();
}

尝试使用
map.keySet().toArray(新字符串[0])
map.values().toArray(新整数[0])。但是您最好使用
entrySet
并迭代前两项。还要记住,HashMap不是有序的,所以没有“2个优先”对象,您只会得到2个随机对象。您似乎对映射和顺序感到困惑。HashMap是一个查找表。不像你有XY问题。请显示完整的代码和您实际要完成的任务如果顺序很重要,您可能需要将
HashMap
更改为.Ops!我的错误。忘了在那里输入“否”字。我将删除该评论,以防止进一步混淆。谢谢@Paul:)尝试使用
map.keySet().toArray(新字符串[0])
map.values().toArray(新整数[0])。但是您最好使用
entrySet
并迭代前两项。还要记住,HashMap不是有序的,所以没有“2个优先”对象,您只会得到2个随机对象。您似乎对映射和顺序感到困惑。HashMap是一个查找表。不像你有XY问题。请显示完整的代码和您实际要完成的任务如果顺序很重要,您可能需要将
HashMap
更改为.Ops!我的错误。忘了在那里输入“否”字。我将删除该评论,以防止进一步混淆。谢谢@Paul:)