黑马程序员技术交流社区

标题: 技术支持,分析代码。关于数组的问题 [打印本页]

作者: 探花    时间: 2014-3-24 21:32
标题: 技术支持,分析代码。关于数组的问题
这是个数组去重的题给定 指定数组 {6,9,8,4,6,8,4,5,2,7}要去掉重复的得到{6,9,8,4,5,2,7},

但下面代码运行后,给做了排序{2,4,5,6,7,8,9},能不能做到原数组的排序,不要大小写的,

请高手看看,那里出错了,或者给个其他方法,





作者: yanzhendong    时间: 2014-3-24 21:48
楼主应该用Set类,因为TreeSet类本身会对内部的元素进行排序
作者: 菜小徐    时间: 2014-3-24 21:56
代码我不帮你打了,给你说说思想吧,
一个for循环依次取出每个数组,放入set中,放入时判断一下,放入的数据在set中是否存在,如果存在就表示重复,不要放进去了,否则就放入set,然后用forEach输出就行了
作者: 疯狂沙漠    时间: 2014-3-24 22:27
这个应当使用set集合,就可以去除重复的,但又要保证原有顺序,那就用LinkedHashSet
  1. public static void main(String[] args) {

  2.                 int[] array = new int[] { 6, 9, 8, 4, 6, 8, 4, 5, 2, 7 };
  3.                 System.out.println(Arrays.toString(array));
  4.                 LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();

  5.                 for (int i : array) {
  6.                         set.add(new Integer(i));
  7.                 }
  8.                 System.out.println(set);
  9.         }
复制代码

作者: 探花    时间: 2014-3-24 22:55
菜小徐 发表于 2014-3-24 21:56
代码我不帮你打了,给你说说思想吧,
一个for循环依次取出每个数组,放入set中,放入时判断一下,放入的数 ...

谢谢   现在会了
作者: 探花    时间: 2014-3-24 22:56
疯狂沙漠 发表于 2014-3-24 22:27
这个应当使用set集合,就可以去除重复的,但又要保证原有顺序,那就用LinkedHashSet
...

是的,这样的也对 。谢谢




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