gpt4 book ai didi

java - 将键转换为数组时不理解 hashmap 中的 return 语句

转载 作者:行者123 更新时间:2023-12-01 12:33:24 24 4
gpt4 key购买 nike

返回map.keySet().toArray(new String[map.keySet().size()]);

有人能给我解释一下上面的return语句吗?它的作用是什么以及字符串构造函数在做什么?

了解更多信息程序在这里

package com.demo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ConvertMapTester {
public static void main(String args[])
{
Map<String , String> map = new HashMap<>();
fillData(map);

// //Convert keys to array
// String[] strings = keysAsArray(map);
// for(String string : strings)
// {
// System.out.println(string);
// }

//Convert keys to list
List<String> list = keysAsList(map);
for(String string : list)
{
System.out.println(string);
}

}

private static void fillData(Map<String , String> map)
{
map.put("android", "google");
map.put("iphone", "apple");
map.put("nokia", "microsoft");
}

private static List<String> keysAsList(Map<String, String> map) {
// TODO Auto-generated method stub
List<String> list = new ArrayList<>(map.keySet());
return list;
}

// private static String[] keysAsArray(Map<String, String> map) {
// // TODO Auto-generated method stub
// return map.keySet().toArray(new String[map.keySet().size()]);
// }
}

欢迎提出建议。

最佳答案

HashMap<K,V>.keySet()交付所有 key 。

将其转换为 K[]有一个方法

K[] toArray(K[] obj);

它需要一个参数(obj)来确定类K。因为在运行时,由于编译器没有保存K的实际值(类型删除),所以必须从obj中确定类。 .

如果obj具有结果数组的正确大小,obj使用,否则创建并返回一个新数组。因此通过

new String[map.keySet().size()]

所以这个参数可以用于结果。 new String[0]将具有相同的效果,但创建一个额外的数组。

关于java - 将键转换为数组时不理解 hashmap 中的 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25764251/

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