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

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

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

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

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

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

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();
        }
    }

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌尘吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值