[英]Java: Create objects with HashSet
我正在嘗試用Java編寫minigame插件。 在此插件中,管理員將arenas創建為新對象。 我的問題是我需要在HashSet(我個人選擇)中存儲播放器(名稱為字符串)。 我搜索了stack和google兩天,但仍然找不到正確的答案。 這是我卡住的部分。 呈現的代碼僅用於幫助我確定如何制作。 是否有一種方法可以從例如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));
}
}
解決方案一:
我會向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");
解決方案二:
向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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.