JAVA Set集合储存String类型日期,对其按照日期进行顺序排序
时间: 2024-01-16 13:02:21 浏览: 101
可以使用Java中的TreeSet集合,它会对元素自动进行排序。以下是一个示例代码:
```
import java.util.Set;
import java.util.TreeSet;
public class DateSet {
public static void main(String[] args) {
Set<String> dateSet = new TreeSet<String>();
dateSet.add("2021-01-01");
dateSet.add("2021-01-03");
dateSet.add("2021-01-02");
System.out.println("排序前:" + dateSet);
// 输出:排序前:[2021-01-01, 2021-01-02, 2021-01-03]
}
}
```
在上面的示例代码中,我们创建了一个TreeSet集合,并加入了三个日期字符串。由于TreeSet会对元素进行排序,所以输出结果会按照日期顺序排列。
相关问题
java 采用Set对象来管理书籍信息,并根据业务规则对存放进来的书籍信息进行排序,具体程序的实现效果参照下图 [a] 创建书籍类,要求具备两个属性(书名+价格),正确编写其get、set方法,构造方法,重写toString方法 [b] 书籍类,要求其实现Comparable接口,并按照要求实现其compareTo方法(比较规则:先按照价格进行比较,从高到低进行排序,如果价格一样,再按书名进行比较,结果可参照下图) [c] 创建合适的Set对象,并按照要求的将书籍对象存放到Set对象中,插入的书籍数据要求与下图一致,并要求采用泛型约定Set集合存储的类型 [d] 正确采用泛型迭代器遍历Set集合,并要求输出结果顺序正确
好的,我已经明白您的问题,以下是Java代码实现:
[a] 创建书籍类,要求具备两个属性(书名+价格),正确编写其get、set方法,构造方法,重写toString方法
```java
public class Book {
private String name;
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
}
```
[b] 书籍类,要求其实现Comparable接口,并按照要求实现其compareTo方法(比较规则:先按照价格进行比较,从高到低进行排序,如果价格一样,再按书名进行比较,结果可参照下图)
```java
public class Book implements Comparable<Book> {
private String name;
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
@Override
public int compareTo(Book o) {
if (this.price > o.price) {
return -1;
} else if (this.price < o.price) {
return 1;
} else {
return this.name.compareTo(o.name);
}
}
}
```
[c] 创建合适的Set对象,并按照要求的将书籍对象存放到Set对象中,插入的书籍数据要求与下图一致,并要求采用泛型约定Set集合存储的类型
```java
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Set<Book> bookSet = new TreeSet<>();
bookSet.add(new Book("Java从入门到精通", 79.8));
bookSet.add(new Book("Java从入门到放弃", 29.8));
bookSet.add(new Book("Java从入门到放弃", 19.8));
bookSet.add(new Book("Java从入门到放弃", 29.8));
bookSet.add(new Book("Python从入门到精通", 89.8));
bookSet.add(new Book("Python从入门到实践", 69.8));
bookSet.add(new Book("Python从入门到放弃", 29.8));
bookSet.add(new Book("C++从入门到精通", 99.8));
bookSet.add(new Book("C++从入门到放弃", 39.8));
for (Book book : bookSet) {
System.out.println(book);
}
}
}
```
[d] 正确采用泛型迭代器遍历Set集合,并要求输出结果顺序正确
```java
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Set<Book> bookSet = new TreeSet<>();
bookSet.add(new Book("Java从入门到精通", 79.8));
bookSet.add(new Book("Java从入门到放弃", 29.8));
bookSet.add(new Book("Java从入门到放弃", 19.8));
bookSet.add(new Book("Java从入门到放弃", 29.8));
bookSet.add(new Book("Python从入门到精通", 89.8));
bookSet.add(new Book("Python从入门到实践", 69.8));
bookSet.add(new Book("Python从入门到放弃", 29.8));
bookSet.add(new Book("C++从入门到精通", 99.8));
bookSet.add(new Book("C++从入门到放弃", 39.8));
Iterator<Book> iterator = bookSet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
```
java Set<String> new
在Java中,`Set<String>`是一个存储字符串的独特无序集合。当你创建一个新的`Set<String>`实例时,它会自动排除任何重复的元素,因为集合不允许有重复的条目。例如,你可以这样做:
```java
Set<String> uniqueNames = new HashSet<String>();
uniqueNames.add("Alice"); // 添加第一个名字
uniqueNames.add("Bob"); // 再次添加"Bob",因为是唯一,所以不会重复
uniqueNames.add("Alice"); // 尽管又尝试添加"Alice",但由于set规则,它将被忽略
// 检查集合大小
System.out.println(uniqueNames.size()); // 输出:2
```
`HashSet`是Set接口的一个常见实现,它是基于哈希表的数据结构,提供快速的查找和插入速度。如果你需要保证元素的顺序不重要并且不需要额外的操作,那么`TreeSet`也是一个选择,它内部使用红黑树排序,但在大多数情况下,`HashSet`由于其更好的性能通常首选。
阅读全文