Java二维数组去重

521 阅读1分钟
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        int[][] array = {{1, 2, 3}, {4, 5, 6}, {1, 2, 3}, {7, 8, 9}};

        // 创建一个Set用于去重
        Set<String> set = new HashSet<>();

        // 遍历二维数组
        for (int[] row : array) {
            // 将每一行转换为字符串并添加到Set中
            set.add(Arrays.toString(row));
        }

        // 创建一个新的二维数组,用于存储去重后的结果
        int[][] distinctArray = new int[set.size()][];
        int index = 0;

        // 将Set中的每个元素转换为整数数组并存储到新的二维数组中
        for (String s : set) {
            s = s.substring(1, s.length() - 1); // 去掉字符串中的方括号
            String[] elements = s.split(", "); // 拆分字符串
            int[] row = new int[elements.length];

            // 转换为整数数组
            for (int i = 0; i < elements.length; i++) {
                row[i] = Integer.parseInt(elements[i]);
            }

            distinctArray[index++] = row;
        }

        // 打印去重后的二维数组
        for (int[] row : distinctArray) {
            System.out.println(Arrays.toString(row));
        }
    }
}

以上代码中,我们首先创建了一个Set对象 set,用于存储去重后的元素。然后,我们遍历二维数组,将每一行转换为字符串,并将其添加到Set中。这样,Set会自动去除重复的元素。

接下来,我们创建一个新的二维数组 distinctArray,用于存储去重后的结果。我们遍历Set中的每个字符串元素,将其转换为整数数组,并将其存储到新的二维数组中。