如何使用Java组合列表中的元素而不重复

如何使用Java组合列表中的元素而不重复,java,list,Java,List,我试图迭代和组合列表中的值。我的名单是[A,B,C,D]。我正在寻找一种方法来输出以下内容 AB AC AD BC BD CD 这是我的密码: List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); for (int i = 0; i<list.size()-1; i++){

我试图迭代和组合列表中的值。我的名单是[A,B,C,D]。我正在寻找一种方法来输出以下内容

AB
AC
AD
BC
BD
CD 
这是我的密码:

List<String> list = new ArrayList<>();
    list.add("A");
    list.add("B");
    list.add("C");
    list.add("D");
      for (int i = 0; i<list.size()-1; i++){
         for (int k = 0; k<list.size()-1; k++){
             if (list.get(i)!=list.get(k+1)){
                System.out.println(list.get(i)+list.get(k+1));
               }
            }
         }
我不确定扫描仪是否是这里的一个选项。。。 如果我在列表中有更多的元素,它会变得更混乱。列表中的项目越多意味着重复项越多,例如xx、yy、xy-yx

List<String> list = new ArrayList<>();
    list.add("A");
    list.add("B");
    list.add("C");
    list.add("D");
    for (int x = 0; x < list.size() - 1; x++){
        for (int y = x + 1; y < list.size; y++){
           System.out.println(list.get(x) + list.get(y);
        }
    }

=
运算符比较对象引用而不是值,其中as
.equals()
比较两个对象中的值。因此,
=
将检查这两个对象是否引用相同的
字符串
实例。

将第二个for循环更改为从
i+1
迭代。这应该给出所有的排列。以下是已更改的for循环:

      for (int i = 0; i < list.size() - 1; i++)
      {          
          for (int k = i+1; k < list.size(); k++)
          {
                System.out.println(list.get(i)+list.get(k));
          }
      }
for(int i=0;i
关于如何生成组合,网上有大量文章。请做一些调查。我真的不明白这个问题是否有效,是否有一百万个答案,你可以参照答案将其标记为重复。成为一个团队的一员更容易……谢谢你,安!!我非常感谢包括详细的解释!!当然没问题:)
String a = "apple" //Same value but twi different String instances
String b = "apple"
System.out.println(a==b) // Prints false
System.out.println(a.equals(b)) Prints true
      for (int i = 0; i < list.size() - 1; i++)
      {          
          for (int k = i+1; k < list.size(); k++)
          {
                System.out.println(list.get(i)+list.get(k));
          }
      }