用TreeSet存储以下数据: “xiaoqiang”、 “zhangsan”、“lisi”、“xiaohua”、 “ruhua”、 “wangcai” 要求按照字符串的长度进行排序后再存储(如果长度相同,则按字符串的自然顺序排序)
时间: 2023-11-05 18:14:24 浏览: 123
代码如下:
```
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
TreeSet<String> set = new TreeSet<String>((s1, s2) -> {
int result = s1.length() - s2.length();
return result == 0 ? s1.compareTo(s2) : result;
});
set.add("xiaoqiang");
set.add("zhangsan");
set.add("lisi");
set.add("xiaohua");
set.add("ruhua");
set.add("wangcai");
System.out.println(set);
}
}
```
输出结果为:[lisi, ruhua, wangcai, xiaohua, zhangsan, xiaoqiang]
相关问题
Java中题目:①学生类包含成员属性:姓名、总成绩 ②将学生类a1,a2,a3使用treeSet且按照总成绩由高到低存储 ③遍历打印出treeSet成员相关信息:姓名,总成绩。
好的,这是一个关于Java的问题。下面是代码实现:
```
import java.util.TreeSet;
class Student implements Comparable<Student>{
private String name;
private int totalScore;
public Student(String name, int totalScore) {
this.name = name;
this.totalScore = totalScore;
}
public String getName() {
return name;
}
public int getTotalScore() {
return totalScore;
}
@Override
public int compareTo(Student o) {
return o.getTotalScore() - this.totalScore;
}
}
public class Main {
public static void main(String[] args) {
TreeSet<Student> treeSet = new TreeSet<>();
treeSet.add(new Student("a1", 90));
treeSet.add(new Student("a2", 80));
treeSet.add(new Student("a3", 95));
for (Student student : treeSet) {
System.out.println("name: " + student.getName() + ", totalScore: " + student.getTotalScore());
}
}
}
```
在这个例子中,我们定义了一个Student类,这个类包含了两个属性:姓名和总成绩。这个类实现了Comparable接口,这样我们就可以使用TreeSet按照总成绩从高到低排序。在Main类中,我们创建了一个TreeSet对象,将三个学生对象按照总成绩的大小加入到TreeSet中。最后,我们遍历TreeSet并打印出每个学生的姓名和总成绩。
以下容器类型中,可以存放“key,value”键值对的是:( ) Ajava.util.PriorityQueue Bjava.util.HashMap Cjava.util.Stack Djava.util.TreeSet
B选项java.util.HashMap可以存放“key,value”键值对。HashMap是一种散列表实现,它使用键值对存储数据。每个键都可以映射到一个值,因此可以使用HashMap存储“key,value”键值对。PriorityQueue、Stack和TreeSet都不是用于存储键值对的容器类型。因此,正确答案是B选项。
阅读全文