Java 如何寻址/访问动态创建的对象?

Java 如何寻址/访问动态创建的对象?,java,object,Java,Object,我尝试处理动态创建的对象,通过方法获取值。 我动态地将对象装箱,并使用一个ArrayList来保存对象名。 我的ArrayList称为ArrayList,列表的值由用户输入(扫描仪)创建,值为f.e.(“Mike”、“Nick”、“John”) 我的班级“球员”: public class Player { String playerName = "Player"; int counter1 = 20; int counter2 = 50; public St

我尝试处理动态创建的对象,通过方法获取值。 我动态地将对象装箱,并使用一个ArrayList来保存对象名。 我的ArrayList称为ArrayList,列表的值由用户输入(扫描仪)创建,值为f.e.(“Mike”、“Nick”、“John”)

我的班级“球员”:

public class Player {

    String playerName = "Player";
    int counter1 = 20;
    int counter2 = 50;

    public String get_playerName(){
        return playerName;
    }    
    public int get_counter1(){
        return counter1;
    }    
    public int get_counter2(){
        return counter2;
    }    


    public Player(String Name){
    playerName = Name;
    }

}
这里是我动态创建对象的地方:

int playersCount = arraylist.size(); //Size of ArrayList with Players names

//create Players dynamicly
for(int i = 0; i < playersCount; i++){
     Player playerName = new Player(arraylist.get(i));
}
int playersCount=arraylist.size()//带有玩家名称的ArrayList的大小
//动态创建玩家
对于(int i=0;i
如何从Player类中获取特定的Player值(fe:比方说,John正在移动,希望通过get_counter1()获取他的counter1) 如何处理特定的玩家对象

提前感谢大家的回答


Michael

听起来您需要一个
HashMap
来存储对您创建的
玩家的引用

    int playersCount = arraylist.size(); //Size of ArrayList with Players names
    Map<String,Player> players = new HashMap<>();

    //create Players dynamicly
    for(int i = 0; i < playersCount; i++){
        Player player = new Player(arraylist.get(i));
        players.put (arraylist.get(i), player);
    }

您需要将玩家存储在将玩家名称映射到玩家对象的地图中

    HashMap<String, Player> mp = new HashMap<String, Player>();
    for(int i = 0; i < playersCount; i++){
           Player player = new Player(arraylist.get(i));
           mp.put(arraylist.get(i), player);
    }


    // ... 

    Player p = mp.get("John");

    // now use the player John i.e. the p object
HashMap mp=newhashmap();
对于(int i=0;i
如果您只有一个
列表,并且您使用的是java 8,那么您可以使用流API按名称(或任何其他属性)查找。这将比使用
地图
慢,但您可以更灵活地搜索/Map/etc您的收藏

Optional<Player> optPlayer = arraylist
    .stream()
    .filter(p -> "John".equals(p.get_playerName()))
    .findFirst();

if(optPlayer.isPresent()) {
    //player found
    Player p = optPlayer.get();
}
可选optPlayer=arraylist
.stream()
.filter(p->“John”.equals(p.get_playerName()))
.findFirst();
if(optPlayer.isPresent()){
//玩家发现
Player p=optPlayer.get();
}

非常感谢!非常适合我。另请参见
Optional<Player> optPlayer = arraylist
    .stream()
    .filter(p -> "John".equals(p.get_playerName()))
    .findFirst();

if(optPlayer.isPresent()) {
    //player found
    Player p = optPlayer.get();
}