[英]How to I create a "sub array-list" for an element of a main array-list?
我正在尝试创建一个程序来显示车辆“待办事项”列表。 这是我希望 output 看起来像的示例。
Blue Spitfire
Sanding
Hood
Doors
Engine
Oil pan seal
Electrical
Oil pressure light
Headlight switch
现在,我有一个 ArrayList 来存储车辆名称(蓝色喷火)。 我想知道如何在每个工作编号下存储工作名称(打磨、发动机、电气)和细节(引擎盖、门、油底壳密封等)。
总而言之,车辆名称存储作业,作业存储细节。 我该怎么做呢?
任何帮助表示赞赏。
您可以使用 Map,特别是 HashMap 来存储键和值之间的关联列表,并使用 List 或 Set,特别是 HashSet,来存储值列表。
但正如评论中所指出的,将其与类结合使用可能会更好。
这是一种可能的实现。 (您可以使用用于创建集合和地图的实用程序类来缩短它,例如来自 Google Guava 库或 Apache Commons 库的那些。)
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
class Job {
String model;
Map<String, Set<String>> areas;
public Job(String model, Map<String, Set<String>> areas) {
this.model = model;
this.areas = areas;
}
}
public class Example {
public static void main(String[] args) {
Map<String, Set<String>> areas = new HashMap<>();
Set<String> sandingProblems = new HashSet<>();
sandingProblems.add("Hood");
sandingProblems.add("Doors");
areas.put("Sanding", sandingProblems);
Set<String> engineProblems = new HashSet<>();
engineProblems.add("Oil panel seal");
areas.put("Engine", engineProblems);
Set<String> electricalProblems = new HashSet<>();
electricalProblems.add("Oil pressure light");
electricalProblems.add("Headlight switch");
areas.put("Electrical", electricalProblems);
Job job = new Job("Blue Spitfire", areas);
System.out.println(job.model);
for (Map.Entry<String, Set<String>> entry : areas.entrySet()) {
System.out.println("\t" + entry.getKey());
for (String problem : entry.getValue()) {
System.out.println("\t\t" + problem);
}
}
}
}
尝试这个:
import java.util.ArrayList;
class Vechicle {
Vechicle(String vName) {
vehicleName= vName;
}
String vehicleName;
ArrayList<Job> jobs = new ArrayList<>();
void addJob(Job j) {
jobs.add(j);
}
@Override
public String toString() {
// TODO Auto-generated method stub
String returnString = vehicleName ;
for (Job j: jobs) {
returnString = returnString+ "\r\n\t"+ j.jobName;
for (String jobSpecifics: j.jobsSpecifics) {
returnString = returnString+ "\r\n\t\t"+ jobSpecifics;
}
}
return returnString;
}
}
class Job {
String jobName;
ArrayList<String> jobsSpecifics = new ArrayList<>();
Job(String jobName) {
this.jobName= jobName;
}
void addJobSpecifics(String s) {
jobsSpecifics.add (s);
}
}
public class VechicleMain {
public static void main(String[] args) {
Vechicle v = new Vechicle("Blue Spitfire");
Job j= new Job("Sanding");
j.addJobSpecifics("Hood");
j.addJobSpecifics("Doors");
v.addJob(j);
System.out.println(v);
}
}
Output:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.