Java萌新在学习路上遇到的一个扯dan的问题解法:
知识点:
Set,TreeSet ,TreeSet自然排序,TreeSet比较器排序,Comparator
原题目:
请编写main()方法,按以下要求顺序 循环接收控制台录入的字符串. 并把这些字符串存储到TreeSet集合中. 当控制台录入quit时,停止录入数据, 并打印集合. 要求:
可以存储重复内容
集合中元素的存储顺序和控制台录入的顺序保持一致.打印集合大小
注意: 这里隐藏了两个条件
1. 可以存储重复元素, 所以肯定不能使用String的自动排序功能,
2. 保持和输入的顺序一致, 则意味着新添加的元素应该放在集合的后边, 即排序时返回值应该>0
隐藏条件让我误以为不能使用String泛型.....,其实是想用比较器排序
代码:
public class Test02 {
public static void main(String[] args) {
TreeSet<String> tSet = new TreeSet<>(
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1.equals(o2)){
//重复的放在左边
return -1;
}
//保证输出顺序
return 1;
}
}
);
Scanner sc = new Scanner(System.in);
lp:
while (true) {
System.out.println("开始录入:");
String input = sc.nextLine();
if ("quit".equals(input)) {
break lp;
} else {
tSet.add(input);
}
}
System.out.println("size: "+tSet.size());
System.out.println("Set: "+tSet);
}
}
以上为萌新记录编码日常,欢迎大佬提出意见!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)