【问题标题】:how to use variables in maps or associative array in java如何在映射中使用变量或在java中使用关联数组
【发布时间】:2020-09-18 15:14:40
【问题描述】:

问题:
我有 3 个整数值。

integer val1 = 23 ;  
integer val2 = 14 ;   
integer val3 = 6;  

我需要将它们与 IP 关联。所以我尝试了这个。

Map<String, String> map = new HashMap<String, String>();
map.put("val1", "192.168.100.100");
map.put("val2", "192.168.100.101");
map.put("val3", "192.168.100.102");   

但它似乎没有在地图中存储整数。当我在我的代码中尝试这个时:

  System.out.println(map.get("val1"));

我得到了null 作为输出。

我的代码:
我的代码太长了,我不能在这里粘贴,但我可以解释其中的一部分。实际上这 3 个整数是随机数,所以每次都有不同的值。

  Random rand = new Random();
  int val1= rand.nextInt(101);

然后我需要将它们与 IP 相关联。然后找到最大整数并在其余代码中使用其 IP:

  int maxnum = Math.max(val3, Math.max(val1, val2));

  map.get(maxnum);  

如何解决问题并做到这一点?

【问题讨论】:

    标签: java ip max associative-array


    【解决方案1】:

    您希望整数为keys,但您构建了一个Map,其中键类型为StringMap&lt;String, String&gt;,正如您所见,您提供"val1" 作为键,其键类型为string,不同val1 的变量在此处指向 Integer

    Integer val1 = 23 ;  
    Integer val2 = 14 ;   
    Integer val3 = 6;  
    
    Map<Integer, String> map = new HashMap<>();
    map.put(val1, "192.168.100.100");
    map.put(val2, "192.168.100.101");
    map.put(val3, "192.168.100.102"); 
    
    System.out.println(map.get(val1)); // "192.168.100.100"
    System.out.println(map.get(23));   // "192.168.100.100"
    

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 2022-07-21
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      相关资源
      最近更新 更多