Java学习杂记——去重

在学习Java基础的时候,当学到数组或者集合的时候,有一个经典的问题——去重,就会产生。我们不考虑各种知识的综合应用的前提下,利用所学的来解决所面临的问题,会提升我们的思考能力。
接下来我会从数组开始一直到集合,最后到综合运用来做一遍去重。也当做是给脑子做一些锻炼。
**一、数组的去重**
    单单对于数组的去重而不去考虑其他的限制条件来说是不难思考的!首先,我们有一个旧的数组,在旧的数组中可能有重复的也可能没有重复的元素。那么我们应该思考,怎么才能去除重复呢?要想去除重复我们在原来的数组上操作是极其不明智的做法,那么可供我们选择的也只有新建一个新的数组了。请参见代码!
public class Array {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 要求用数组去去除数组的重复!
        // 思路:去重复肯定是要定义一个新数组来解决

        int[] arr = { 1, 1, 2, 3, 4, 5, 5, 1, 2, 6 };

        // 定义新数组,然后遍历老数组,判断新数组中是否包含,不包含就添加
        int[] newarr = new int[arr.length];// 做最坏打算就是给的数组中是没有重复的,所以我们定义一个和原来数组一样大的一个数组
        int count = 0;
        for (Integer i : arr) {//foreach循环,判断新数组中有没有元素,没有就往数组中添加

            if (notcontains(newarr, i)) {
                newarr[count++] = i;

            }
        }
        System.out.println(Arrays.toString(newarr));
        System.out.println(count);

    }
    public static boolean notcontains(int[] newarr, Integer i) {
        // TODO Auto-generated method stub
        boolean b = true;
        for (Integer i1 : newarr) {
            if (i1 == i) {
                b = false;
            }
        }
        return b;
    }
以上是纯粹用数组解决数组去重的问题,大家其实认真读的话会发现,我昨晚处理以后并不完美,因为新的数组中其实后面的元素有些都是0,那么接下来要怎么做?今天不讲了,测试一下csdn的博客怎么写!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值