需要一些有关如何更新列表的帮助.我有一个类,用字符串名称,字符串状态,浮点数和浮点数长度定义对象.
每次玩家移动服务器时都会向我发送一条异步消息,这些变量只能是状态lat和long,这些都是我想要"覆盖"的.这个名字是独一无二的,所以我猜我必须根据它进行搜索,因为这是永远不会改变的事情.我想更新现有对象以防止一个玩家发生一次以上.
到目前为止我的(非功能)代码:
if(players.size()==0){ ///// 1.
Player p = new Player();
p.name = split[2];
p.status = split[3];
p._lat = Float.valueOf(split[4]);
p._long = Float.valueOf(split[5]);
players.add(p);
}//This works
else{ ///// 2.
for(int i = 0; i < players.size(); i++){ ///// 3.
if(players.get(i).name.equals(split[2])){
Player p = new Player();
p.name = split[2];
p.status = split[3];
p._lat = Float.valueOf(split[4]);
p._long = Float.valueOf(split[5]);
players.add(p);
players.add(i, p);
}
else{ ///// 4.
Player p = new Player();
p.name = split[2];
p.status = split[3];
p._lat = Float.valueOf(split[4]);
p._long = Float.valueOf(split[5]);
players.add(p);
}
}//This doesnt
}
Run Code Online (Sandbox Code Playgroud)
它可能是显而易见的,但我真的不知道如何搜索和替换对象.我所追求的功能是:
到目前为止,我的代码将我置于一个永无止境的循环中,我猜是因为应用程序停止响应.拆分变量是从异步调用中分离出来的一个单词,也就是名称,我通过打印来检查它.
小智 5
代替
players.add(p);
players.add(i, p);
Run Code Online (Sandbox Code Playgroud)
使用
players.set(i, p)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9385 次 |
最近记录: |