我试图用Java编写minigame插件。在此插件中,管理员将竞技场创建为新对象。我的问题是我需要在HashSet中存储玩家(名字为Strings)(我个人选择)。我搜索堆栈和谷歌两天仍然无法找到正确的答案。 这是我陷入困境的部分。提出的代码只是为了帮助我弄清楚如何制作它。有没有办法从例如Arena(1)向HashSet添加内容?可能我不能这样做,但我真的需要帮助解决这个问题。
竞技场课程:
package test;
import java.util.HashSet;
public class Arena {
private HashSet<String> online;
private int id;
public Arena(int arenaID){
online = new HashSet<String>();
this.id = arenaID;
}
public HashSet<String> getHashSet(){
return online;
}
public int getArenaId() {
return id;
}
@Override
public String toString() {
return "Arena [online=" + online + ", id=" + id + "]";
}
}
主要课程
package test;
import java.util.HashMap;
public class Main {
public static void main(String[] args){
HashMap<String, Object> arenas = new HashMap<String, Object>();
arenas.put("1", new Arena(1));
arenas.put("2", new Arena(2));
//arena 1
System.out.println(arenas.get(1));
//arena 2
System.out.println(arenas.get(2));
}
}
答案 0 :(得分:0)
解决方案I:
我会向Arena
添加另一种方法:
public void addToHashSet(String element){
this.online.add(element);
}
然后:
((Arena) arenas.get("1")).addToHashSet("something new");
或声明
HashMap<String, Arena> arenas = new HashMap<String, Arena>();
并且没有施放:
arenas.get("1").addToHashSet("something new");
解决方案II:
向Arena添加另一种方法:
public HashSet<String> setHashSet(HashSet<String> hashSet){
this.online = hashSet;
}
并使用它:
HashSet<String> forOnline = new HashSet<String>();
forOnline.add(something new);
(Arena) arenas.get("1").setHashSet(forOnline);