Java数组排列组合及对象封装
在Java编程中,我们经常需要对两个数组进行排列组合,并将结果封装到一个对象中。本文将通过一个简单的例子,介绍如何实现这一功能。
问题描述
假设我们有两个数组arr1
和arr2
,我们希望将这两个数组的所有排列组合存储在一个对象中。例如,如果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);
}
}
}
类图
以下是Pair
和ArrayCombinations
类的类图:
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
结论
通过上述代码,我们实现了将两个数组的排列组合封装到一个对象中的功能。这种方法简单易懂,可以轻松地应用于其他类似的场景。希望本文对您有所帮助!