Java 在arraylist中搜索和更改对象
我有一个包含对象的ArrayList。我一直想要/需要做的是在ArrayList中搜索一个特定的对象,并在找到它时更改其中一个值。也就是说,我有一个足球队,比如费城老鹰队,它包含球队名称、得分总数和麻袋总数,然后按名字、姓氏、比赛和位置列出所有球员。我正在寻找一名特别的球员,比如查德·霍尔,我想把他从老鹰队中除名,然后把他交易给新英格兰爱国者队。到目前为止,我已经完成了ArrayList的迭代,但是我的代码没有找到播放器,然后退出Java 在arraylist中搜索和更改对象,java,Java,我有一个包含对象的ArrayList。我一直想要/需要做的是在ArrayList中搜索一个特定的对象,并在找到它时更改其中一个值。也就是说,我有一个足球队,比如费城老鹰队,它包含球队名称、得分总数和麻袋总数,然后按名字、姓氏、比赛和位置列出所有球员。我正在寻找一名特别的球员,比如查德·霍尔,我想把他从老鹰队中除名,然后把他交易给新英格兰爱国者队。到目前为止,我已经完成了ArrayList的迭代,但是我的代码没有找到播放器,然后退出 case 6: String name =
case 6:
String name = "";
System.out.print("Who would you like to trade? ");
name = kb.nextLine();
tradePlayer(nflTeams, name);
public static void tradePlayer(ArrayList<Team> nflTeams, String name)
{
Scanner kb = new Scanner(System.in);
String teamName = "";
System.out.print("What team do you want to trade this player to?(Team Acronym) " );
teamName = kb.nextLine();
for(Team t: nflTeams){
if (nflTeams.contains(name.toLowerCase()))
t.setName(teamName);
}
System.out.println("Cannot find " + name);
}
案例6:
字符串名称=”;
System.out.print(“您想交易谁?”);
name=kb.nextLine();
贸易玩家(nflTeams,名称);
公共静态void tradePlayer(ArrayList nflTeams,字符串名称)
{
扫描仪kb=新扫描仪(System.in);
字符串teamName=“”;
System.out.print(“你想把这个球员交易给哪支球队?(球队缩写)”;
teamName=kb.nextLine();
对于(t组:nflTeams){
if(nflTeams.contains(name.toLowerCase()))
t、 集合名(团队名);
}
System.out.println(“找不到”+名称);
}
Player
类包括按名字、姓氏、球队、位置和所玩游戏构建的玩家。我想改变的是球队。在Team
类中,我有setName(String)
来设置团队名称
非常感谢您的任何建议或想法。您必须从球队中获得球员名单,并通过指定的
姓名将其删除,如:
String teamToAddNewPlayer = "New England Patriots";
String deletedPlayer = null;
for(Team t: nflTeams){
List<String> players = t.getPlayers();
if (players.contains(name)){
deletedPlayer = players.remove(name);
}
if (t.getName().equals(teamToAddNewPlayer))
players.add(name);
}
if (deletedPlayer == null)
//nothing was deleted
else
//player was deleted
String teamToAddNewPlayer=“新英格兰爱国者”;
字符串deletedPlayer=null;
对于(t组:nflTeams){
List players=t.getPlayers();
if(players.contains(name)){
deletedPlayer=players.remove(名称);
}
if(t.getName().equals(teamToAddNewPlayer))
玩家。添加(姓名);
}
if(deletedPlayer==null)
//没有删除任何内容
其他的
//玩家被删除了
if(nflTeams.contains(name.toLowerCase())
你想干什么?您的列表nflTeams
包含Team
对象而不是名称。
这是行不通的。
如果您需要通过其名称访问团队
,请改用映射
,使用迭代器将使您能够更好地控制正在尝试的内容
import java.util.*;
class IteratorDemo {
public static void main(String args[]) {
// Create an array list
ArrayList al = new ArrayList();
// add elements to the array list
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
// Use iterator to display contents of al
System.out.print("Original contents of al: ");
Iterator itr = al.iterator();
while(itr.hasNext()) {
Object element = itr.next();
System.out.print(element + " ");
}
System.out.println();
// Modify objects being iterated
ListIterator litr = al.listIterator();
while(litr.hasNext()) {
Object element = litr.next();
litr.set(element + "+");
}
System.out.print("Modified contents of al: ");
itr = al.iterator();
while(itr.hasNext()) {
Object element = itr.next();
System.out.print(element + " ");
}
System.out.println();
// Now, display the list backwards
System.out.print("Modified list backwards: ");
while(litr.hasPrevious()) {
Object element = litr.previous();
System.out.print(element + " ");
}
System.out.println();
}
}
这个例子来自于Mmn,内容看起来不可靠。。