>我有 2 个列表-
[(唐杜尔,印度(,(印度比里亚尼(,(比萨饼,意大利(]
{在上面,左边的项目是右边的美食类型的食品}
和
[(约翰,印度人(,(玛丽,印度人(,(山姆,意大利人(]
{在上面,左边的人可以选择右边的菜种}
我需要将列表的内容打印为约翰·唐杜尔约翰·比里亚尼玛丽·唐杜尔玛丽·比里亚尼山姆披萨
给出了用于初始化 2 个给定列表、打印输出和处理 Pair 对象(比较、访问键和值(的 API。
为什么我在下面得到空指针异常 -
package a1;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class main {
static class Pair implements Comparable<Pair>{
String pairKey;
String pairValue;
Pair(String pairKey, String pairValue) {
this.pairKey = pairKey;
this.pairValue = pairValue;
}
public String getPairKey() {
return pairKey;
}
public String getPairValue() {
return pairValue;
}
public String toString() {
return getPairKey() + " " + getPairValue();
}
@Override
public int compareTo(Pair pair) {
int compare = pairKey.compareTo(pair.getPairKey());
if(compare == 0) {
compare = pairValue.compareTo(pair.getPairValue());
}
return compare;
}
}
static List<Pair> solve(List<Pair> lunchMenuPairs, List<Pair> teamCuisinePreferencePairs){
List<Pair> result= null;
for(Pair first : teamCuisinePreferencePairs){
for(Pair name : lunchMenuPairs)
{
String a1 = first.getPairValue();
String a2 = name.getPairValue();
String a3 = first.getPairKey();
String a4 = name.getPairKey();
if(first.compareTo(name)==0)
{
System.out.println(a3);
System.out.println(a4);
Pair pair = new Pair(a3,a4);
result.add(pair);
}
}
}
return result;
}
private static void readAndSetParameters(List<Pair> lunchMenuPairs, List<Pair> teamCuisinePreferencePairs) {
int lunchMenuPairCount = -1;
int teamCuisinePreferencePairCount = -1;
String tempOption = null, tempOptionValue = null;;
try(Scanner in = new Scanner(System.in)) {
lunchMenuPairCount = in.nextInt();
while(lunchMenuPairCount > 0) {
lunchMenuPairCount--;
tempOption = in.next();
tempOptionValue = in.next();
Pair pair = new Pair(tempOption, tempOptionValue);
lunchMenuPairs.add(pair);
}
teamCuisinePreferencePairCount = in.nextInt();
while(teamCuisinePreferencePairCount > 0) {
teamCuisinePreferencePairCount--;
tempOption = in.next();
tempOptionValue = in.next();
Pair pair = new Pair(tempOption, tempOptionValue);
teamCuisinePreferencePairs.add(pair);
}
}
}
private static void print(List<?> resultPairs) {
for (Object pair : resultPairs) {
System.out.println(pair);
}
}
public static void main(String[] args){
List<Pair> lunchMenuPairs = new LinkedList<>();
List<Pair> teamCuisinePreferencePairs = new LinkedList<>();
readAndSetParameters(lunchMenuPairs, teamCuisinePreferencePairs);
List<Pair> result = solve( lunchMenuPairs, teamCuisinePreferencePairs );
Collections.sort(result);
print(result);
}
}
更改
static List<Pair> solve(List<Pair> lunchMenuPairs, List<Pair> teamCuisinePreferencePairs){
List<Pair> result= null;
...
自
static List<Pair> solve(List<Pair> lunchMenuPairs, List<Pair> teamCuisinePreferencePairs){
List<Pair> result= new ArrayList<>();
...