您的位置:首页 > 编程语言 > Java开发

Java去除数组中重复元素的两种实现

2017-05-04 22:47 351 查看
              今日去面试,被问到要求手写一段代码,实现去除数组中重复的元素。我的第一反应是用 Set,因为 Set中的元素是不能重复的,但是大叔又说不让用 Set。明明感觉很简单的一个算法题,但是最后也没能写的让人满意。

     于是回来总结了以下两种方法来实现:

         1. 利用 List 的 contains() 方法:

package com.czq.text;

import java.util.ArrayList;
import java.util.List;

public class RemoveSameNum2 {

public static void main(String[] args) {

int[] attr = { 1, 2, 3, 3, 5, 5, 7, 9 };
List<Integer> list = new ArrayList<Integer>();
for (int i : attr) {
if (!list.contains(i)) {//boolean contains(Object o):如果列表包含指定的元素,则返回 true
list.add(i);
}
}
System.out.println(list);
}

}

         2. 使用 Set 接口:package com.czq.text;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class RemoveSameNum {

public static void main(String[] args) {

int[] attr = { 1, 2, 3, 3, 5, 5, 7, 9 };
List<Integer> list = new ArrayList<Integer>();
for (int i : attr) {
list.add(i);
}
Set<Integer> set = new HashSet<Integer>();
set.addAll(list);
System.out.println(set);
}

}
经过测试,以上两种方法均能正确输出:

    [1, 2, 3, 5, 7, 9]

           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法