gpt4 book ai didi

java - 如何从 Java 中的 TreeMap 中获取值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:07 27 4
gpt4 key购买 nike

我的问题是无法从 TreeMap 中获取对象“项目”(值)。我需要将该信息发送到我的 GUI 类并将其显示在 JList 中以获得选择列表,因此可以轻松地选择歌曲并将其添加到播放列表,但我得到的输出只有“01、02、03、04、05” ( key )。请帮忙,因为我是初学者,不知道该怎么做。

public class LibraryData {

private static class Item {


Item(String n, String a, int r) {
name = n;
artist = a;
rating = r;
}

// instance variables
private String name;
private String artist;
private int rating;
private int playCount;

public String toString() {
return name + " - " + artist;
}
}


private static Map<String, Item> library = new TreeMap<String, Item>();


static {
library.put("01", new Item("How much is that doggy in the window", "Zee-J", 3));
library.put("02", new Item("Exotic", "Maradonna", 5));
library.put("03", new Item("I'm dreaming of a white Christmas", "Ludwig van Beethoven", 2));
library.put("04", new Item("Pastoral Symphony", "Cayley Minnow", 1));
library.put("05", new Item("Anarchy in the UK", "The Kings Singers", 0));
}


public static String[] getLibrary() {
String [] tempa = (String[]) library.keySet().toArray(new String[library.size()]);
return tempa;
}

解决方案:

因为我必须将值传递给另一个类:

JList tracks = new JList(LibraryData.getLibrary());

我做了类似的东西,它的作品

public static Object[] getLibrary() {
Collection c = library.values();
return c.toArray(new Item[0]);

谢谢你们,10 个小时后我终于完成了!

最佳答案

使用您拥有的代码:

String [] tempa = (String[]) library.keySet().toArray(new String[library.size()]);

您正在从 map 中获取所有键。如果您想要所有值,请使用:

library.values();

最后,如果您需要通过键获取值,请使用 V get(Object key):

library.get("01");

这将返回 map 中的第一个 Item

不太清楚你想要其中的哪一个,但基本上这些是选项。

** 编辑 **

因为你想要所有的值,你可以这样做:

library.values().toArray()

JList 需要 Object 的数组或 vector ,所以这应该可以工作。

关于java - 如何从 Java 中的 TreeMap 中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199193/

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