java中的映射问题
如何在vec中打印随机车辆数量?例如,如果n为2,则打印总线=16java中的映射问题,java,map,Java,Map,如何在vec中打印随机车辆数量?例如,如果n为2,则打印总线=16 class T { Map<String, Integer> vec = new HashMap<String, Integer>(); List<String> transp = Arrays.asList("Car", "Bus", "Train"); List<Integer> amount = Arrays.asList(58, 16, 33);
class T {
Map<String, Integer> vec = new HashMap<String, Integer>();
List<String> transp = Arrays.asList("Car", "Bus", "Train");
List<Integer> amount = Arrays.asList(58, 16, 33);
int val() {
for (int i = 0; i < vec.size(); i++)
vec.put(transp.get(i), amount.get(i));
System.out.println(vec);
Random rand = new Random();
int n = 0 + rand.nextInt(vec.size());
}
}
T类{
Map vec=新的HashMap();
List transp=Arrays.asList(“汽车”、“公共汽车”、“火车”);
列表金额=数组.asList(58,16,33);
int val(){
对于(int i=0;i
谢谢 既然您已经将键/值对作为单独的列表,为什么不使用:
System.out.println(transp.get(n) + " = " + amount.get(n));
String randomVehicle = transp.get(n);
int randomAmount = amount.get(n);
如果必须通过地图进行操作,可以使用:
Iterator<Map.Entry<String, Integer>> iterator = vec.entrySet().iterator();
Map.Entry<String, Integer>> entry = iterator.next();
for (int i = 0; i < n; i++)
{
entry = iterator.next();
}
String randomVehicle = entry.getKey();
Integer randomAmount = entry.getValue();
Iterator Iterator=vec.entrySet().Iterator();
Map.Entry>Entry=iterator.next();
对于(int i=0;i
这并不是一种很好的方法——地图是用来按键查找的,而不是按索引获取条目,因为它们本身就是无序的。既然已经将键/值对作为单独的列表,为什么不使用:
String randomVehicle = transp.get(n);
int randomAmount = amount.get(n);
如果必须通过地图进行操作,可以使用:
Iterator<Map.Entry<String, Integer>> iterator = vec.entrySet().iterator();
Map.Entry<String, Integer>> entry = iterator.next();
for (int i = 0; i < n; i++)
{
entry = iterator.next();
}
String randomVehicle = entry.getKey();
Integer randomAmount = entry.getValue();
Iterator Iterator=vec.entrySet().Iterator();
Map.Entry>Entry=iterator.next();
对于(int i=0;i
这并不是一种很好的方法——地图是按键查找的,而不是按索引获取条目,因为它们本来就是无序的。你甚至在给它添加值之前就测量了
vec
的大小,因此,for循环的并不是运行它唯一的语句。甚至在向其添加值之前,您就在测量vec
的大小,因此,for
循环的并不是运行它唯一的语句。我不知道为什么输出为:null=16查看问题下方的注释我不知道为什么输出为:null=16查看问题下方的注释