java如果有特定的键值对 希望以键名为数组下标 键值为数组的值 怎么来循环呢
发布网友
发布时间:2022-05-12 08:29
我来回答
共3个回答
热心网友
时间:2024-02-20 11:54
没具体明白你的意思。根据我的理解就是:你知道了数据下标和下标对应的值,并且这些都是放在Map中,然后你想利用循环,来获取完整的数组。下面是根据我的理解的一个小实例
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Map<String,Object> map=new HashMap<String,Object>();
map.put("0","制造假数据");
map.put("1", "下面是一个小示例");
map.put("2","存放数组下标和数值");
map.put("3", "下面开始循环");
String[] arr=new String[map.size()];
Set<String> set=map.keySet();
for(String st:set){
arr[Integer.parseInt(st)]=(String) map.get(st);
}
for(int i=0;i<arr.length;i++){
System.out.println("arr["+i+"]:"+arr[i]);
}
}
}
追问就是说我那个下标可能第一个就是102 第二个144 就是可能就三个数据 然后就下标差很大 先存进去 然后再安下标去出来 下标也要出来 就比如说键值对11->154 键值对111->197键值对1455->1545 就这3数据存进数组 然后取出最大的数据和下标
热心网友
时间:2024-02-20 11:54
public static void main(String[] args) {
int []array={29,56,89,45,79};
Map<Integer,Integer>map=new HashMap<Integer, Integer>();
map.put(0,array[0]);
map.put(1,array[1]);
map.put(2,array[2]);
map.put(3,array[3]);
map.put(4,array[4]);
Set<Entry<Integer, Integer>>set=map.entrySet();
for(Entry<Integer, Integer>ei:set){
int array1=ei.getKey();
int array2=ei.getValue();
System.out.println("array数组下标为:"+array1+"的元素为:"+array2);
}
}
}
打印结果:
array数组下标为:0的元素为:29
array数组下标为:1的元素为:56
array数组下标为:2的元素为:89
array数组下标为:3的元素为:45
array数组下标为:4的元素为:79追问就是说我那个下标可能第一个就是102 第二个144 就是可能就三个数据 然后就下标差很大 先存进去 然后再安下标去出来 下标也要出来 就比如说键值对11->154 键值对111->197键值对1455->1545 就这3数据存进数组 然后取出最大的数据和下标
热心网友
时间:2024-02-20 11:55
使用keySet获得所有的键,或者使用迭代器迭代