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

© 在学野马 中级黑马   /  2014-10-17 15:01  /  1409 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 在学野马 于 2014-10-21 16:03 编辑

public static void main(String[] args) {
                List<String>list=new ArrayList<String>();
                Set<String>set=new TreeSet<String>();
                list.add("c");
                list.add("b");
                list.add("a");
                list.add("c");
                list.add("e");
                list.add("f");
                set.addAll(list);
                for(Iterator<String>it=set.iterator();it.hasNext();){
                        list.add(it.next());
                }
                Collections.sort(list);
                System.out.println(list);
}
为什么没有去掉重复的 不是已经加入到set集合里面了吗

10 个回复

倒序浏览
List集合可以重复,你是加到了Set,但是你输出的是List。
回复 使用道具 举报
戏言丶 发表于 2014-10-17 15:56
List集合可以重复,你是加到了Set,但是你输出的是List。

我是输出排序后的list
回复 使用道具 举报
在学野马 发表于 2014-10-17 18:46
我是输出排序后的list

你又把Set中的元素加到List中,当然会重复了,再说输出的List应该只有3个c而不是4个,你也可以试着只输出Set,不会重复的
回复 使用道具 举报
戏言丶 发表于 2014-10-17 21:23
你又把Set中的元素加到List中,当然会重复了,再说输出的List应该只有3个c而不是4个,你也可以试着只输出 ...

String[] str = { "a", "e", "e", "b","c","d" };//定义一个数组
            Set<String>set=new TreeSet<String>();
            for(int i=0;i<str.length;i++){
                    set.add(str);
            }
            System.out.println(set);
}
直接set加也可以吧
回复 使用道具 举报
在学野马 发表于 2014-10-18 09:01
String[] str = { "a", "e", "e", "b","c","d" };//定义一个数组
            Setset=new TreeSet();
            for(i ...

你循环里面添加都错了,是添加数组中的元素,而不是整个数组。添加元素不会有重复的,除非你重写了equals方法。你自己运行实验过了吗?这种出错的代码你都拿上来,都不着急先试试有没有错,要我们怎么帮你解决问题呢?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
戏言丶 发表于 2014-10-18 16:52
你循环里面添加都错了,是添加数组中的元素,而不是整个数组。添加元素不会有重复的,除非你重写了equals ...

我自己在这敲得,我代码是加了元素的。。
回复 使用道具 举报
在学野马 发表于 2014-10-19 09:01
我自己在这敲得,我代码是加了元素的。。

你确定你上面的set.add(str);语句能添加元素?str是数组,集合是无法添加数组的,应该是set.add(str);添加之后输出set集合会有重复元素吗?
回复 使用道具 举报
戏言丶 发表于 2014-10-19 13:20
你确定你上面的set.add(str);语句能添加元素?str是数组,集合是无法添加数组的,应该是set.add(str);添 ...

set.add(str);
回复 使用道具 举报
你在Set的泛型中定义String类,而添加的时候却是String数组,还是循环添加。。。反正我的是编译无法通过,不知道你用的什么编译的,或许是我落后了
回复 使用道具 举报
楼主,你的输出语句是 System.out.println(list);!2楼已经说了,你输出的是list~~~
你输出set试试,肯定是去了重,而且排序的;
经验证: System.out.println(set);//输出的是[a, b, c, e, f]
~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马