如何比较java中arraylist中的比较元素

时间:2015-08-29 12:13:37

标签: java list arraylist compare comparison

我有足球队的Arraylist

List<String> teams= new ArrayList<String>(teamCount);     
teams.add("chelsea");     
teams.add("Manchester Utd");     
teams.add("Mancity");     
teams.add("Swanser");     
teams.add("asernal");    
teams.add("aston villa");      
teams.add("bacerlona");     
teams.add("realmadrid");      
List<String>Group1= teams.subList(0,4);     
List<String>Group2= teams.subList(4,8); 

我需要像以下那样进行比较: 在每个Arraylist中进行比较,以便每个团队必须在他自己的小组中扮演每个团队。  例如:

Group1
 Chelsea vs Manchester Utd
 Mancity vs Swanser
 Chelsea vs Mancity
 Chelsea vs Swanser
 Mancity vs Manchester Utd
 Manchester Utd vs Swanser



and Group 2
 Asernal vs Aston villa
 Bacerlona vs Aston villa
 Realmadrid vs Aston villa
 Realmadrid vs Bacerlona
 Realmadrid vs Asernal
 Asernal vs Bacerlona

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:1)

这是一个想法。 (我希望他们不会错误地提出这个问题)

import java.util.ArrayList;
import java.util.List;

public class p {
    public static void main(String[] args) {
    // Group1 consists of 4 teams, A,B,C and D
    List<String>Group1= new ArrayList<String>() ; 
    Group1.add("A");
    Group1.add("B");
    Group1.add("C");
    Group1.add("D");
    // matches stores the names of the teams which have been selected for a match
    List<String>matches = new ArrayList<String>();
    for(String team1: Group1) {
      for(String team2: Group1) {
        if(!team1.equals(team2) && !matches.contains(team1+team2) && !matches.contains(team2+team1)) {
          matches.add(team1+team2);
          System.out.println(team1 + " vs " + team2); 
        }
      }
    }
    }
}

您可以使用相同的方法获取Group2的匹配项。

答案 1 :(得分:0)

您可能正在寻找的是数组元素组合的方法。

所以,在一个小组中有四个小组(t0,t1,t2,t3),这个组合将是

  • t0 - t1
  • t0 - t2
  • t0 - t3
  • t1 - t2
  • t1 - t3
  • t2 - t3

使用此结果组合列表,您应该能够编写必要的循环。