黑马程序员技术交流社区
标题: 技术支持,分析代码。关于数组的问题 [打印本页]
作者: 探花 时间: 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},能不能做到原数组的排序,不要大小写的,
请高手看看,那里出错了,或者给个其他方法,
- 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);
- }
-
作者: 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
- public static void main(String[] args) {
- int[] array = new int[] { 6, 9, 8, 4, 6, 8, 4, 5, 2, 7 };
- System.out.println(Arrays.toString(array));
- LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();
- for (int i : array) {
- set.add(new Integer(i));
- }
- System.out.println(set);
- }
复制代码
作者: 探花 时间: 2014-3-24 22:55
谢谢 现在会了
作者: 探花 时间: 2014-3-24 22:56
是的,这样的也对 。谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |