黑马程序员技术交流社区

标题: 【黑马测试题】 数组去重复 [打印本页]

作者: 17043983    时间: 2014-6-10 22:36
标题: 【黑马测试题】 数组去重复
本帖最后由 17043983 于 2014-6-11 11:54 编辑

6、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
  1. public class Test6 {
  2.     public static void main(String[] args) {
  3.         int[] a = { 4, 2, 4, 6, 1, 2, 4, 7, 8 };

  4.         // Set集合无序,不允许有重复的值
  5.         // LinkedHashSet是Set子类,有序且不允许重复
  6.         LinkedHashSet<Integer> list = new LinkedHashSet<Integer>();

  7.         // 将a[]数组的值加到set里面,重复的加不进去。
  8.         for (int i = 0; i < a.length; i++) {
  9.             list.add(a[i]);
  10.         }
  11.         System.out.println(list.toString());
复制代码


大家是怎么做的,说说思路看看还有更好的方法没。
作者: Gaara33    时间: 2014-6-10 22:48
  1. package com.itheima;

  2. import java.util.ArrayList;
  3. import java.util.Arrays;

  4. public class Test08 {

  5.         /**
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) {
  9.                 int [] arr = {4,2,4,6,1,2,4,7,8};//原始数组
  10.                
  11.                 ArrayList<Integer> al = new ArrayList<Integer>();
  12.                
  13.                 for (int x = 0; x < arr.length; x++) {//在将数组元素添加到ArrayList集合过程当中,去除重复的元素
  14.                         if(!al.contains(arr[x]))
  15.                                 al.add(arr[x]);
  16.                 }
  17.                 Integer [] buf = al.toArray(new Integer[al.size()]);//再将无重复元素的集合转换为整型数组。
  18.        
  19.                 System.out.print(Arrays.toString(buf));
  20.         }

  21. }
复制代码




我也抽到这个测试题了,这是我的做法,我觉得遍历数组可以更简便些,贴出来交流一下
作者: 17043983    时间: 2014-6-10 22:55
Gaara33 发表于 2014-6-10 22:48
我也抽到这个测试题了,这是我的做法,我觉得遍历数组可以更简便些,贴出来交流一下 ...

刚才代码弄错了,我有修改了一下,现在就简单了。
作者: Gaara33    时间: 2014-6-10 23:01
17043983 发表于 2014-6-10 22:55
刚才代码弄错了,我有修改了一下,现在就简单了。

更简单了就贴出来,呵呵,大家分享
作者: 17043983    时间: 2014-6-10 23:07
Gaara33 发表于 2014-6-10 23:01
更简单了就贴出来,呵呵,大家分享

我就是在之前的代码里面修改的。
作者: Gaara33    时间: 2014-6-10 23:09
17043983 发表于 2014-6-10 23:07
我就是在之前的代码里面修改的。

对了,话说你的技术分为什么是1分,技术分还可以花吗?我刚注册2分,不好挣
作者: 17043983    时间: 2014-6-11 00:31
Gaara33 发表于 2014-6-10 23:09
对了,话说你的技术分为什么是1分,技术分还可以花吗?我刚注册2分,不好挣 ...

我也不知道为啥我是1分,貌似要10分才可以进入下一轮的。
作者: 不去会死    时间: 2014-6-11 08:01
苦逼啊,三天了还是默认的技术分,Lz我是过来水经验的,以及学习的
作者: 17043983    时间: 2014-6-11 11:35
不去会死 发表于 2014-6-11 08:01
苦逼啊,三天了还是默认的技术分,Lz我是过来水经验的,以及学习的

我的技术分也只有一份啊
作者: raikecody    时间: 2014-6-11 11:50
用set肯定最快,数据往里一存就出来了




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