从 HashMap 插入和搜索数据
Inserting and searching for data from a HashMap
我的解决方案有问题,我不太明白。如果有人能引导我朝着正确的方向前进并使它正常工作,我将不胜感激。当我调用我的方法时,似乎什么也没有发生。
这里是工作参数的 setter 和 getter:
public class Worker {
private String id;
private String name;
private String location;
public Flight(String id, String name, String location) {
this.id = id;
this.name = name;
this.location = location;
}
public String getID() {
return id;
}
public void setID(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
我想在 WorkerDB 上获取工作人员数据 class,并使用处理搜索功能和将新工作人员插入 HashMap 的方法。
public class WorkerDB {
HashMap<Integer, Worker> workers = new HashMap<Integer, Worker>();
public WorkerDB() {
workers.put(1, new Worker("W01", "John", "Workshop"));
workers.put(2, new Worker("W02", "Steve", "Office"));
workers.put(3, new Worker("W03", "Bob", "Gate"));
}
public String InsertWorkerData(String [] workerDataArray) {
int sizeOfHashMap = Integer.parseInt(workerDataArray[0]);
workers.put(sizeOfHashMap, new Worker(workerDataArray[1], workerDataArray[2], workerDataArray[3]);
return "Worker data inserted successfully";
}
public String searchWorker(String workerID) {
String search = "Worker with ID: " + workerID + ", not found";
for (int i = 1; i < workers.size(); i++) {
if(workers.get(i).getID().equals(workerID)) {
search = workers.get(i).getID() + " " + workers.get(i).getName() + " " + workers.get(i).getLocation();
}
}
return search;
}
}
这里我只是调用 WorkerDB 中的方法 class。
public class Interface {
public static void main(String[] args) {
WorkerDB workers = new WorkerDB();
String[] testArray = {"4", "W04", "George", "Garage"};
workers.searchWorker("W01");
}
}
我认为您的代码中有一些拼写错误:
首先,在您的 Worker
class 中,您需要定义构造函数,以便它是 public Worker()
而不是 public Flight()
:
public Worker(String id, String name, String location) {
this.id = id;
this.name = name;
this.location = location;
}
此外,您的 WorkerDB
class:
中的括号放错了
workers.put(sizeOfHashMap, new Worker(workerDataArray[1], workerDataArray[2], workerDataArray[3]));
此外,由于您正在使用 return 语句来 return String,因此我们需要使用 print 语句在我们的主要方法中输出它:
System.out.println(workers.searchWorker("W03"));
结果:
W01 约翰工作室
此外,由于您从 0 开始,因此您应该一直上升到(并包括)HashMap 的长度,因此请使用 <=
:
for (int i = 1; i <= workers.size(); i++) {
我希望这有助于回答您的问题!如果您需要任何进一步的详细信息或说明,请告诉我:)
我的解决方案有问题,我不太明白。如果有人能引导我朝着正确的方向前进并使它正常工作,我将不胜感激。当我调用我的方法时,似乎什么也没有发生。
这里是工作参数的 setter 和 getter:
public class Worker {
private String id;
private String name;
private String location;
public Flight(String id, String name, String location) {
this.id = id;
this.name = name;
this.location = location;
}
public String getID() {
return id;
}
public void setID(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
我想在 WorkerDB 上获取工作人员数据 class,并使用处理搜索功能和将新工作人员插入 HashMap 的方法。
public class WorkerDB {
HashMap<Integer, Worker> workers = new HashMap<Integer, Worker>();
public WorkerDB() {
workers.put(1, new Worker("W01", "John", "Workshop"));
workers.put(2, new Worker("W02", "Steve", "Office"));
workers.put(3, new Worker("W03", "Bob", "Gate"));
}
public String InsertWorkerData(String [] workerDataArray) {
int sizeOfHashMap = Integer.parseInt(workerDataArray[0]);
workers.put(sizeOfHashMap, new Worker(workerDataArray[1], workerDataArray[2], workerDataArray[3]);
return "Worker data inserted successfully";
}
public String searchWorker(String workerID) {
String search = "Worker with ID: " + workerID + ", not found";
for (int i = 1; i < workers.size(); i++) {
if(workers.get(i).getID().equals(workerID)) {
search = workers.get(i).getID() + " " + workers.get(i).getName() + " " + workers.get(i).getLocation();
}
}
return search;
}
}
这里我只是调用 WorkerDB 中的方法 class。
public class Interface {
public static void main(String[] args) {
WorkerDB workers = new WorkerDB();
String[] testArray = {"4", "W04", "George", "Garage"};
workers.searchWorker("W01");
}
}
我认为您的代码中有一些拼写错误:
首先,在您的 Worker
class 中,您需要定义构造函数,以便它是 public Worker()
而不是 public Flight()
:
public Worker(String id, String name, String location) {
this.id = id;
this.name = name;
this.location = location;
}
此外,您的 WorkerDB
class:
workers.put(sizeOfHashMap, new Worker(workerDataArray[1], workerDataArray[2], workerDataArray[3]));
此外,由于您正在使用 return 语句来 return String,因此我们需要使用 print 语句在我们的主要方法中输出它:
System.out.println(workers.searchWorker("W03"));
结果:
W01 约翰工作室
此外,由于您从 0 开始,因此您应该一直上升到(并包括)HashMap 的长度,因此请使用 <=
:
for (int i = 1; i <= workers.size(); i++) {
我希望这有助于回答您的问题!如果您需要任何进一步的详细信息或说明,请告诉我:)