java查找数组中的重复元素,并计算重复的次数。

首先我们定义一个一维数组:

private static String[] arr = {"1", "3", "6", "3", "2", "5", "6", "4", "3", "2", "1", "4"};

我们将一维数组转为ArrayList对象:

private static List list = Arrays.asList(arr);
private static ArrayList arrayList = new ArrayList<>(list);

java查找数组中的重复元素,并计算重复的次数。_第1张图片 如图,我们先将第一个元素依次与所有元素比较,得出重复的元素。然后将重复元素取出储存在结果中,剩余的元素组成一个新的数组,进行第一次的运算再次得到重复的元素。以此类推直到数组中的元素被删除完,我们就得到了最后的结果。
下面是代码:

private static void getNum() {
        //死循环,在数组remove至无元素时结束。
        while (arrayList.size() > 0) {
            //元素重复的次数。
            int state = 1;
            for (int j = 1; j < arrayList.size(); j++) {
                //判断两个元素是否相等
                if (arrayList.get(0).equals(arrayList.get(j))) {
                    state++;
                }
            }
            //将元素以及它重复的次数添加到结果集中
            endNum.add(new String[]{arrayList.get(0), state + ""});
            //查询到重复元素的内容,并将原数组中的元素循环删除。
            for (int b = 0; b < Integer.parseInt(endNum.get(endNum.size() - 1)[1]); b++) {
                arrayList.remove(endNum.get(endNum.size() - 1)[0]);
            }
            //遍历打印每次删除后的数组
            for (int y = 0; y < arrayList.size(); y++) {
                System.out.print(arrayList.get(y) + "-");
            }
            System.out.println();
        }
    }

菜鸟一枚,如有不足,请各位大佬多多指教。

你可能感兴趣的:(开发总结)