使用java语言定义Person 类,类中包含私有属性姓名 name 和身份证号id,在 TreeSet 集合中添加三个 Person 对象,以id 比较大小的结果作为 Person 对象比较结果,并使用 Iterator 迭代器遍历输出集合中的对象,将遍历的对象写入到以姓名首字母命名的文本文件中。正确用 try...catch...finally 处理异常。
时间: 2024-02-16 21:04:49 浏览: 123
好的,这是一个Java语言定义Person类的示例,以及使用TreeSet集合添加Person对象并将遍历的对象写入到文本文件中的示例代码:
```java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.TreeSet;
public class Person implements Comparable<Person> {
private String name;
private String id;
public Person(String name, String id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
@Override
public int compareTo(Person person) {
return this.id.compareTo(person.id);
}
public static void main(String[] args) {
// 创建TreeSet集合
TreeSet<Person> personSet = new TreeSet<>();
// 向集合中添加Person对象
personSet.add(new Person("张三", "210000199001011234"));
personSet.add(new Person("李四", "210000199002012345"));
personSet.add(new Person("王五", "210000199003023456"));
// 遍历集合并将对象写入文本文件
BufferedWriter writer = null;
try {
Iterator<Person> iterator = personSet.iterator();
while (iterator.hasNext()) {
Person person = iterator.next();
String fileName = person.getName().substring(0, 1) + ".txt";
writer = new BufferedWriter(new FileWriter(fileName, true));
writer.write(person.getName() + " " + person.getId() + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在上面的示例中,我们定义了一个Person类,其中包含了姓名和身份证号两个私有属性,并实现了Comparable接口中的compareTo方法,以id比较大小的结果作为Person对象比较结果。
接着,我们创建了一个TreeSet集合,并向集合中添加了三个Person对象。然后,使用迭代器遍历集合中的对象,并根据姓名首字母命名的规则将遍历的对象写入到文本文件中。在写入文件的过程中,我们使用了try...catch...finally语句块来正确处理可能出现的异常,以保证程序的健壮性。
阅读全文