黑马程序员技术交流社区

标题: 数组去除重复元素 [打印本页]

作者: wuyusi    时间: 2015-6-3 00:44
标题: 数组去除重复元素
import java.util.*;
class  GetSingle
{
        public static void main(String[] args)
        {
                int arr []={1,2,4,5,7,7,8,4,7,3,8,9,2};
                //定义一个LinkedList集合,后面要进行删除
                LinkedList link1 = new LinkedList();
                        //遍历数组,将数据存入集合
                for (int x = 0;x<arr.length ;x++ )
                {
                        link1.add(arr[x]);
                }
                //定义另一个LinkedList集合用于存放新数据
                LinkedList link2 = new LinkedList();
                //迭代原集合,将不重复的数据存入新集合
                Iterator it =link1.iterator();
                while(it.hasNext())
                {
                       
                          Integer si= (Integer)it.next();
                        while(!(link2.contains(si)))
                                link2.add(si);
                }
        System.out.println(link2.toString());
    }
要睡觉了,就写到这里,以后再改进,加上泛型,并将重复元素出现的次数打印       

作者: ZYZQ    时间: 2015-6-3 00:53
何不考虑Set
作者: 经济    时间: 2015-6-3 07:41
思路不错,前几天我也写了一个去除数组重复元素的方法,你可以去点评一下
作者: wuyusi    时间: 2015-6-3 08:05
ZYZQ 发表于 2015-6-3 00:53
何不考虑Set

因为考虑到set无序,不方便结果与原数组对照
作者: 嘉Ming    时间: 2015-6-3 09:58
不错,学习了,加油
作者: tougboy    时间: 2015-6-3 10:51
我面试的时候碰到就是这个题目  
作者: 想要那片海    时间: 2015-6-3 17:13
第一个for那里可以直接用List list1= Arrays.asList(arr); 用数组工具类的asList 方法将数组转为集合比较简单
作者: 想要那片海    时间: 2015-6-3 18:17
不过我刚刚注意到一个问题,用数组工具类的数组变集合的方法,如果要转换基本数据类型的数组,只会把数组的地址值存入集合,但是如果是基本数据类型包装类的数组的话,就会直接把数组中的元素存入集合,所以要int[ ] 型的还是使用for循环存如集合更实际,Integer[ ]可以使用数组工具类,误导你了,不好意思哈  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2