如何使用Java组合列表中的元素而不重复
我试图迭代和组合列表中的值。我的名单是[A,B,C,D]。我正在寻找一种方法来输出以下内容如何使用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++){
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));
}
}