我有一些包含此hashmap的代码(为了简化起见,我删除了除5对之外的所有对):
HashMap<String, Integer> partiesColors = new HashMap<String, Integer>();
{
partiesColors.put("None", color(0, 0, 0, 0));
partiesColors.put("KPÖ", color(170, 0, 0));
partiesColors.put("PILZ", color(128, 128, 128));
partiesColors.put("Grüne", color(81, 165, 30));
partiesColors.put("SPÖ", color(227, 30, 45));
};我正在尝试提取颜色,用下面这行代码将它们组成一个单独的数组:
color[] colorsOnly = partiesColors.values().toArray(new color[partiesColors.size()]);但Processing (3.5.4)集成开发环境拒绝接受这一点,并用The function "toArray()" expects parameters like: "toArray(T[])"给toArray部分划上红线,尽管拼写与我在网上找到的几个资源完全相同。我该怎么做呢?
发布于 2021-05-31 22:08:14
您可以创建一个数组(ArrayList比数组更灵活)。
ArrayList<Integer> colors = new ArrayList<>();
for(int i = 0; i<=4; i++){
colors.add(partiesColors.get(i))
}添加链接到索引的HashMap的前5个值。
你也可以尝试这样做:
Object[] colorArray = partiesColors.entrySet().toArray();发布于 2021-06-01 18:33:32
color是处理集成开发环境提供的用于int的合成糖。
实际上,没有真正的color类型或类;当脚本编译成color时,预处理器会将所有使用的int转换为Java。
因此,您可以交替使用int和color,这样您的数组就不需要为color类型。
Integer[] colorsOnly = partiesColors.values().toArray(new Integer[partiesColors.size()]);
color col = colorsOnly[0];https://stackoverflow.com/questions/67773484
复制相似问题