感谢您抽出宝贵时间来看看这个。我的一个项目遇到了一些麻烦。截至目前,我有2个收集名称和ID的数组列表。我想将两个列表的对象(名称和id)相互链接,以便稍后我可以执行插入排序算法。
任务:
1)要求用户输入团队成员的姓名和ID。用户应在单独的行上交替输入名称和ID,如下面的示例运行所示。提供信息后,TeamMembers将添加到TeamMember对象的ArrayList中。请记住,名称应存储在TeamMember类中的标题大小写中。
2)用户应输入单词" STOP"以小写和大写字母的任意组合,以停止输入团队成员信息。
3)使用插入排序算法按ID递增排序ArrayList。在将每个新的TeamMember对象插入到数组中时,可以选择使用插入排序算法,也可以等到整个数组构建完成后再排序所有成员。
4)输入并排序所有名称后,使用ArrayList.toString()打印ArrayList的内容。
package com.company;
import java.util.*;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
String inputName;
String inputID;
List<String> fullName = new ArrayList<String>();
List<String> idString = new ArrayList<String>();
while (!(fullName.contains("stop"))) {
Scanner uInput = new Scanner(System.in);
//String checkInput = "test";
System.out.println("Please enter the name: ");
inputName = uInput.nextLine();
fullName.add(inputName.toLowerCase());
// System.out.println("List: " + fullName); //Check what is in the fullName List
// System.out.println("List Size: " + fullName.size()); // Check the size of fullName ArrayList
System.out.println("Please enter the ID: ");
inputID = uInput.nextLine();
idString.add(inputID.toLowerCase());
}
fullName.remove(fullName.size() - 1); //removing the last word, which is always "stop"
idString.remove(idString.size() - 1); //(Same as above)
//insertionSort(fullName);
//insertionSort(idString);
}
HashMap newmap = new HashMap(); //creating hash map
Best,Nate
答案 0 :(得分:1)
提供信息后,TeamMembers将被添加到TeamMember对象的ArrayList
因此,您需要一个具有名称和ID的TeamMember
类
class TeamMember {
private String name;
private String id;
public TeamMember(String name, String id) {
this.name = name;
this.id = id;
}
}
请记住,名称应存储在TeamMember类的标题内。
有关将字符串转换为标题大小写
,请参阅this post您余下工作的线索:
用户应以小写和大写字母的任意组合输入单词“STOP”,以停止输入团队成员信息。
获取名称后,使用String的equalsIgnoreCase
检查输入的String是否为STOP的变体。
使用插入排序算法按ID递增排序ArrayList。
您必须传递Comparator
(到排序方法)或使TeamMember
实施Comparable
来比较两个TeamMember
个对象