Java 如何将arraylist排序为多样而不是相似?
因此,对于我的一个项目,我必须根据姓氏为游戏组建团队,他们应该尽可能多样化,因此,如果没有其他团队没有“史密斯”,那么“史密斯”家族将只会与另一个“史密斯”家族加入同一个团队 我得到了一个包含参与者名单的ArrayList,其中包括参与者的姓氏。我只需要弄清楚如何对其进行排序,使ArrayList具有多样性,我只需要遍历ArrayList并将它们分配给团队Java 如何将arraylist排序为多样而不是相似?,java,arraylist,Java,Arraylist,因此,对于我的一个项目,我必须根据姓氏为游戏组建团队,他们应该尽可能多样化,因此,如果没有其他团队没有“史密斯”,那么“史密斯”家族将只会与另一个“史密斯”家族加入同一个团队 我得到了一个包含参与者名单的ArrayList,其中包括参与者的姓氏。我只需要弄清楚如何对其进行排序,使ArrayList具有多样性,我只需要遍历ArrayList并将它们分配给团队 ArrayList<Participant> list = tourney.getUnattatchedParticipants
ArrayList<Participant> list = tourney.getUnattatchedParticipants();
//need to sort list somehow
ArrayList list=tourney.getUntatchedParticipants();
//需要对列表进行排序吗
我会这样处理你的问题
ArrayList
)ArrayList
,并且对于每个参与者,我将检查第1组是否包含具有相似(相同或部分姓氏)姓氏的参与者public ArrayList divideParticipantsIntoTeams(ArrayList参与者)
{
ArrayList groups=new ArrayList();//这将保留我们的组
groups.add(newarraylist());//我们创建第一个组。
//我们迭代所有给定的参与者
参与者。forEach(参与者->
{
boolean contains=true;//显示组中是否已经有它的变量
//我们迭代所有的组并检查它们是否包含它
用于(ArrayList组:组)
{
//检查是否发现有相似姓氏的参与者
contains=集装箱运输工具(组、参与者);
//如果它不包含这样的参与者,那么我们将其添加到组中,然后退出循环。
如果(!包含)
{
添加组(参与者);
打破
}
}
//如果我们迭代所有的组,完成后它们都包含一些类似的参与者,那么创建一个新的组。
如果(包含)
{
添加(新的ArrayList());
ArrayList newGroup=groups.get(groups.size()-1);//获取刚刚创建的组
newGroup.add(参与者);//将参与者添加到其中
}
});
返回组;
}
公共布尔容器参与者(ArrayList组,参与者)
{
对于(参与者组参与者:组)
{
//这可能需要一些微调,具体取决于您想要的方式。
if(groupParticipant.getLastName().contains(participant.getLastName()))
{
返回true;
}
}
返回false;
}
您尝试过什么?如果参与者在付款场地站在你面前,你将如何处理将他们分成小组的问题?你能把它翻译成代码吗?