gpt4 book ai didi

java - 如何将 Navigablemap 转换为 String[][]

转载 作者:行者123 更新时间:2023-11-29 06:19:56 25 4
gpt4 key购买 nike

我需要将可导航 map 转换为二维字符串数组。下面给出的是来自 answer 的代码回答我之前的一个问题。

NavigableMap<Integer,String> map =
new TreeMap<Integer, String>();

map.put(0, "Kid");
map.put(11, "Teens");
map.put(20, "Twenties");
map.put(30, "Thirties");
map.put(40, "Forties");
map.put(50, "Senior");
map.put(100, "OMG OMG OMG!");

System.out.println(map.get(map.floorKey(13))); // Teens
System.out.println(map.get(map.floorKey(29))); // Twenties
System.out.println(map.get(map.floorKey(30))); // Thirties
System.out.println(map.floorEntry(42).getValue()); // Forties
System.out.println(map.get(map.floorKey(666))); // OMG OMG OMG!

我必须将此 map 转换为二维字符串数组:

{
{"0-11","Kids"},
{"11-20","Teens"},
{"20-30","Twenties"}
...
}

有没有一种快速而优雅的方法来做到这一点?

最佳答案

最好的办法就是遍历 Map 并为每个条目创建一个数组,麻烦的部分是生成诸如“0-11”之类的东西,因为这需要寻找下一个最高的键...但是由于 Map 是排序的(因为您使用的是 TreeMap)这没什么大不了的。

String[][] strArr = new String[map.size()][2];
int i = 0;
for(Entry<Integer, String> entry : map.entrySet()){
// current key
Integer key = entry.getKey();
// next key, or null if there isn't one
Integer nextKey = map.higherKey(key);

// you might want to define some behavior for when nextKey is null

// build the "0-11" part (column 0)
strArr[i][0] = key + "-" + nextKey;

// add the "Teens" part (this is just the value from the Map Entry)
strArr[i][1] = entry.getValue();

// increment i for the next row in strArr
i++;
}

关于java - 如何将 Navigablemap 转换为 String[][],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574306/

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