java 获取 HashMap 键作为整数数组

标签 java integer hashmap

我有一个像这样的 HashMap

public HashMap <String,People> valueHashMap  = new Hashmap();

这里我的 HashMap 的关键是以秒为单位的字符串时间,即我像这样向 hashmap 添加值

long timeSinceEpoch = System.currentTimeMillis()/1000;
valueHashMap.put(
                   Integer.toString((int)timeSinceEpoch)
                   , people_obj
                );

现在我想将 HashMap 中的所有键放入整数数组列表中。

ArrayList<Integer> intKeys = valueHashMap.keys()...

有什么办法可以做到这一点吗?

最佳答案

没有直接的方法将String列表转换为Integer列表:

  1. 您需要像这样重新定义 valueHashMap:

    public HashMap<Integer, People> valueHashMap  = new HashMap<Integer, People>();
    
    ....
    
    ArrayList<Integer> intKeys = new ArrayList<Integer>(valueHashMap.keySet());
    
  2. 或者你需要循环:

    ArrayList<Integer> intKeys = new ArraList<Integer>();
    
    for (String stringKey : valueHashMap.keySet())
         intKeys.add(Integer.parseInt(stringKey);
    
  3. 不过,我建议您使用 Long 作为键:

    public HashMap<Long, People> valueHashMap  = new HashMap<Long, People>();
    

    那么就不会转换为 int (您可以使用上面的 (1) 和 Long 来代替)

关于java 获取 HashMap 键作为整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412597/

相关文章:

java - 如何Junit测试一个同步对象不能同时被两个线程访问?

java - HashMap 空间复杂度

java - 为什么我可以从具有不同对象的 HashMap 中检索值?

java - 如何重新附加到现有的 Java EE session

java - 我应该关注这个 compareTo/equals/hashCode 实现吗?

arrays - 如何检查数组中的每个元素是否都大于它之前的元素?

exception - Ada:获取整数时如何管理 Data_error 异常

java - Hibernate LazyInitializingException

java - 将空白替换为 %20

java - 0 和 0. 在 Java 中有什么区别?