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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

需求:给一个字符串去重,并且不改变元字符串的顺序。{:2_31:}
我的程序是:
public class Test1_TreeSet {

        public static void main(String[] args) {
                String  s ="abcacd";
               
                TreeSet<Character>  ts =  new TreeSet<>(new Comparator<Character>() {//s树形集合,创建comparator匿名内部类
                        public int compare(Character c1,Character c2){
                        return c1.compareTo(c2) == 0?c1.compareTo(c2):1;//两个元素相同时返回0,让其只存一个,当两者不同时返回为1,保证顺序不变
                        }
                });
                char[] arr = s.toCharArray();//将字符串转为字符数组
                for (char c : arr) {//遍历数组,把每一个值存入集合中,得到不重复的集合
                        ts.add(c);
                }
                System.out.println(ts);

              }
}

打印输出结果是:[a, b, c, a, d]

29 个回复

正序浏览
Array先生 发表于 2016-9-23 07:44
[mw_shl_code=java,true]import java.util.LinkedHashSet;
import java.util.Set;

关键在于题目要求用treeset......
回复 使用道具 举报

你用treeset做出来了?分享一下代码
回复 使用道具 举报
mqxin 发表于 2016-9-21 22:57
用LinkedHashSet能一步到位,去重且不打乱顺序

我拿到的这个题目是要求你用TreeSet给一个字符串去重,并且不改变元字符串的顺序.
结果和楼主一样,去重有的去了,有的没去.
回复 使用道具 举报
return c1.compareTo(c2) == 0?c1.compareTo(c2):1;  这里写反了
回复 使用道具 举报
回根的落叶 发表于 2016-9-21 17:19
字符串去除重复字母,并且按照字典顺序输出。不需要传入比较器。直接使用TreeSet集合就可以了。如果实在要 ...

大哥,你题目都没看清,就是要求不改变顺序,不是要你按字典排序,字典排序哪用得着传比较器
回复 使用道具 举报
多练~~~~~
回复 使用道具 举报
学习学习!
回复 使用道具 举报
键盘敲烂,月薪过万
回复 使用道具 举报
学习学习!
回复 使用道具 举报
不对!!!
回复 使用道具 举报
一天又一天
回复 使用道具 举报
学习学习!
回复 使用道具 举报
没看懂怎么回事
回复 使用道具 举报
解决不了
回复 使用道具 举报
解决了吗?怎么接的呢?
回复 使用道具 举报
没看明白?
回复 使用道具 举报
[Java] 纯文本查看 复制代码
import java.util.LinkedHashSet;
import java.util.Set;


//需求:给一个字符串去重,并且不改变元字符串的顺序。
//我的程序是:
public class Demo01 {
	public static void main(String[] args) {
		String  s ="abcacd";
                
		Set<Character> s1 = new LinkedHashSet<Character>();
        char[] arr = s.toCharArray();//将字符串转为字符数组
        for (char c : arr) {
			s1.add(c);
		}
        
        System.out.println(s1);
  }
}

//打印输出结果是:[a, b, c, ,d]
回复 使用道具 举报
可以了11!
回复 使用道具 举报
mqxin 金牌黑马 2016-9-21 22:57:07
12#
用LinkedHashSet能一步到位,去重且不打乱顺序
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马