gpt4 book ai didi

java - 如何将 HashMap.getKey() 转换为 Int

转载 作者:行者123 更新时间:2023-12-02 07:30:09 26 4
gpt4 key购买 nike

我有一个存储考勤信息的 HashMap。我只想将 Key 转换为 Int 并检查条件。

下面是我的代码:

import java.util.*;

public class HashClass {

public static void main(String args[]) {

HashMap<Integer, String> attendanceHashMap = new HashMap<Integer, String>();
attendanceHashMap.put(1, "John");
attendanceHashMap.put(2, "Jacob");
attendanceHashMap.put(3, "Peter");
attendanceHashMap.put(4, "Clara");
attendanceHashMap.put(5, "Philip");

for(HashMap.Entry m:attendanceHashMap.entrySet()){
if(Integer.valueOf((int)m.getKey())<3) break;
System.out.println(m.getKey()+" "+m.getValue());
}
}
}

我想这样打印

3 Peter
4 Clara
5 Philip

我尝试了这些方法:

 - (int)m.getKey() : not working
- Integer.valueOf((int)m.getKey()) : not working
- Integer.valueOf(m.getKey()) : not working

如何实现这一目标?

最佳答案

你是说:

if(Integer.valueOf((int)m.getKey())<3) break;

换句话说,如果您遇到的第一个键恰好小于三,则终止循环,因此不打印任何内容。最有可能的是,您想使用继续来处理下一个条目:

for(HashMap.Entry m:attendanceHashMap.entrySet()){
if(Integer.valueOf((int)m.getKey())<3) continue;
System.out.println(m.getKey()+" "+m.getValue());
}

但请注意,类型转换已过时。只需将缺少的类型参数添加到条目中即可:

for(HashMap.Entry<Integer,String> m:attendanceHashMap.entrySet()){
if(m.getKey()<3) continue;
System.out.println(m.getKey()+" "+m.getValue());
}

但是让 print 语句有条件而不是使用循环控制可能会更清楚:

for(HashMap.Entry<Integer,String> m:attendanceHashMap.entrySet()){
if(m.getKey()>=3) {
System.out.println(m.getKey()+" "+m.getValue());
}
}

顺便说一句,不保证打印条目的顺序。如果您想按插入顺序打印条目,请使用 LinkedHashMap:

HashMap<Integer, String> attendanceHashMap = new LinkedHashMap<>();
attendanceHashMap.put(1, "John");
attendanceHashMap.put(2, "Jacob");
attendanceHashMap.put(3, "Peter");
attendanceHashMap.put(4, "Clara");
attendanceHashMap.put(5, "Philip");
// printing code follows...

为了完整起见,Java 8 解决方案:

attendanceHashMap.forEach((k,v) -> { if(k>=3) System.out.println(k+" "+v); });

关于java - 如何将 HashMap.getKey() 转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com