Java数组排列组合及对象封装

在Java编程中,我们经常需要对两个数组进行排列组合,并将结果封装到一个对象中。本文将通过一个简单的例子,介绍如何实现这一功能。

问题描述

假设我们有两个数组arr1arr2,我们希望将这两个数组的所有排列组合存储在一个对象中。例如,如果arr1 = [1, 2]arr2 = [3, 4],那么我们需要得到的排列组合包括:

  • [1, 3]
  • [1, 4]
  • [2, 3]
  • [2, 4]

解决方案

为了实现这个功能,我们首先需要定义一个类Pair,用于存储排列组合的结果。然后,我们编写一个方法generateCombinations,该方法接受两个数组作为参数,并返回一个包含所有排列组合的Pair对象列表。

类定义

首先,我们定义一个Pair类,用于存储两个整数的组合:

public class Pair {
    private int first;
    private int second;

    public Pair(int first, int second) {
        this.first = first;
        this.second = second;
    }

    public int getFirst() {
        return first;
    }

    public int getSecond() {
        return second;
    }

    @Override
    public String toString() {
        return "[" + first + ", " + second + "]";
    }
}

生成排列组合

接下来,我们编写generateCombinations方法,该方法接受两个数组作为参数,并返回一个包含所有排列组合的Pair对象列表:

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

public class ArrayCombinations {
    public static List<Pair> generateCombinations(int[] arr1, int[] arr2) {
        List<Pair> combinations = new ArrayList<>();
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr2.length; j++) {
                combinations.add(new Pair(arr1[i], arr2[j]));
            }
        }
        return combinations;
    }

    public static void main(String[] args) {
        int[] arr1 = {1, 2};
        int[] arr2 = {3, 4};
        List<Pair> result = generateCombinations(arr1, arr2);

        for (Pair pair : result) {
            System.out.println(pair);
        }
    }
}

类图

以下是PairArrayCombinations类的类图:

classDiagram
    class Pair {
        +int first
        +int second
        +Pair(int first, int second)
        +int getFirst()
        +int getSecond()
        +String toString()
    }
    class ArrayCombinations {
        +List<Pair> generateCombinations(int[] arr1, int[] arr2)
    }
    Pair "1" *-- "1" ArrayCombinations

结论

通过上述代码,我们实现了将两个数组的排列组合封装到一个对象中的功能。这种方法简单易懂,可以轻松地应用于其他类似的场景。希望本文对您有所帮助!