用Java实现使用列表(ArrayList或LinkedList)来管理个人信息。 首先,输入字符串n-x-y。n代表所要处理的数据的数量,x代表姓,y代表名。 然后输入n个人的信息,每一行代表一个人的信息。每行字符串格式为"姓-名-成绩-编号",以-作为分隔符。 将所有姓为x的字符串放入数组列表list1中。然后,输出list1。 进一步地将list1中的名字为y(忽略大小写)的字符串取出放入list2中。然后,输出list2。 最后,对list2中的字符串按成绩进行降序排序并输出。 输入格式: 第一行输入n-x-y 下面输入n行字符串,格式为"姓-名-成绩-编号" 输出格式: 格式化输出的多个人的信息
时间: 2024-04-02 09:36:23 浏览: 34
好的,我理解了您的问题。这是一个使用Java实现列表管理个人信息的问题。下面是代码实现:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] input = scanner.nextLine().split("-");
int n = Integer.parseInt(input[0]);
String x = input[1];
String y = input[2];
List<Person> list1 = new ArrayList<>();
for (int i = 0; i < n; i++) {
String[] info = scanner.nextLine().split("-");
Person person = new Person(info[0], info[1], Integer.parseInt(info[2]), info[3]);
if (person.getLastName().equals(x)) {
list1.add(person);
}
}
System.out.println("List 1:");
for (Person person : list1) {
System.out.println(person);
}
List<Person> list2 = new LinkedList<>();
for (Person person : list1) {
if (person.getFirstName().equalsIgnoreCase(y)) {
list2.add(person);
}
}
System.out.println("List 2:");
for (Person person : list2) {
System.out.println(person);
}
Collections.sort(list2, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o2.getScore() - o1.getScore();
}
});
System.out.println("List 2 sorted by score:");
for (Person person : list2) {
System.out.println(person);
}
}
}
class Person {
private String firstName;
private String lastName;
private int score;
private String id;
public Person(String firstName, String lastName, int score, String id) {
this.firstName = firstName;
this.lastName = lastName;
this.score = score;
this.id = id;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public int getScore() {
return score;
}
public String getId() {
return id;
}
@Override
public String toString() {
return String.format("%s-%s-%d-%s", lastName, firstName, score, id);
}
}
```
这个程序使用了两个列表,一个是ArrayList用来存储姓为x的人的信息,另一个是LinkedList用来存储名为y的人的信息,并按成绩进行排序。程序中还定义了一个Person类,用来封装个人信息,便于管理和输出。
程序运行时,先输入n-x-y,然后输入n个人的信息,每个人的信息格式为"姓-名-成绩-编号",以-作为分隔符。程序会根据输入的信息进行处理,输出两个列表和排序后的列表。
阅读全文