gpt4 book ai didi

java - 如何比较 arraylist java 中所有可能的组合

转载 作者:行者123 更新时间:2023-12-01 16:23:58 24 4
gpt4 key购买 nike

例如,我们有这种类型的列表(“A”,“B”,“C”,“D”)。我们需要将每一个都进行比较,而不是重复比较,例如输出应该是这样的。

  1. “A”与“B”,“C”与“D”
  2. “A”与“C”,“B”与“D”
  3. “A”与“D”,“B”与“C”

        List<String> list = Arrays.asList("A", "B", "C", "D");
    for (int i = 0; i < list.size(); i++) {
    for (int j = i + 1; j < list.size(); j++) {
    System.out.print(" Compare " + list.get(i) + " " + list.get(j));
    }
    System.out.println();
    }

此代码返回所有组合,但未分组。

最佳答案

您可以按如下方式解决:

  1. 创建一个新的列表,例如结果如下例所示。
  2. 使用嵌套循环,创建 list.get(i)list.get(j) 的组合。然后,检查其反向组合是否已存在于 result 中;如果没有,请将此组合添加到结果中。

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

    public class Main {
    public static void main(String[] args) {
    List<String> list = Arrays.asList("A", "B", "C", "D");
    List<String> result = new ArrayList<>();
    for (int i = 0; i < list.size(); i++) {
    for (int j = i + 1; j < list.size(); j++) {
    String combination = list.get(i) + " " + list.get(j);
    if (!result.contains(combination)
    && !result.contains(new StringBuilder(combination).reverse().toString())) {
    result.add(combination);
    }
    }
    }

    // Display the result
    for (String combination : result) {
    System.out.println("Compare " + combination);
    }
    }
    }

    输出:

    Compare A B
    Compare A C
    Compare A D
    Compare B C
    Compare B D
    Compare C D

关于java - 如何比较 arraylist java 中所有可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62196362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com