簡體   English   中英

Java:使用HashSet創建對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM