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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 探花 中级黑马   /  2014-3-24 21:32  /  1106 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是个数组去重的题给定 指定数组 {6,9,8,4,6,8,4,5,2,7}要去掉重复的得到{6,9,8,4,5,2,7},

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

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

  • import java.util.*;
  • class Test01 {
  • public static void main(String[] args)  {
  •      TreeSet ts = new TreeSet();
  •        int[] array = new int[]{6,9,8,4,6,8,4,5,2,7};
  •       System.out.print("原数组:");
  •       System.out.println(Arrays.toString(array));
  •               for (int i = 0; i < array.length; i++) {
  •                    ts.add(array);         
  •          }              
  •         System.out.print("去重后:");        
  •         System.out.println(ts);     
  •    }




评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
楼主应该用Set类,因为TreeSet类本身会对内部的元素进行排序
回复 使用道具 举报
代码我不帮你打了,给你说说思想吧,
一个for循环依次取出每个数组,放入set中,放入时判断一下,放入的数据在set中是否存在,如果存在就表示重复,不要放进去了,否则就放入set,然后用forEach输出就行了

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
这个应当使用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.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
菜小徐 发表于 2014-3-24 21:56
代码我不帮你打了,给你说说思想吧,
一个for循环依次取出每个数组,放入set中,放入时判断一下,放入的数 ...

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

是的,这样的也对 。谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马