A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenshi 中级黑马   /  2016-1-22 00:00  /  488 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个int类型的一维数组,(随意有重复数据就行)去除上面定义的数组中的重复元素。刚学完数组,用简单的方法。

4 个回复

正序浏览
import java.util.Arrays;

public class Demo {

        public static void main(String[] args) {
                int[] arr = { 2, 1, 3, 1, 1, 4, 6, 4, 5, 8, 6, 2, 9, 8, 7, 7 };
                arr = f(arr, 1);
                System.out.println(Arrays.toString(arr));

        }
       
        // 发现重复的元素就从这个元素索引开始 把数组中元素依次向前移动一位 然后把数组长度减一
        public static int[] f(int[] arr, int index) {
                if (index < arr.length) {
                        boolean flag = false;
                        for (int i = index - 1; i >= 0; i--) {
                                if (arr[index] == arr[i]) {
                                        for (int k = index; k < arr.length - 1; k++) {
                                                arr[k] = arr[k + 1];
                                        }
                                        arr = Arrays.copyOf(arr, arr.length - 1);
                                        flag = true;
                                        break;
                                }
                        }
                        index = flag ? index : index + 1;
                        return f(arr, index);
                } else {
                        return arr;
                }
        }
}

点评

谢谢了  发表于 2016-1-26 19:57

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报 1 0
比较费内存 但是比较好理解的
两个数组A,B 取A里面的值和B里面的值对比,不等就存
回复 使用道具 举报
利用嵌套for循环进行比较,如果在本数组中没有一样的就输出.....或者等到学了集合了这事情就好办了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马