【问题标题】:Nested Iteration for separate [duplicate]单独的嵌套迭代[重复]
【发布时间】:2017-06-17 06:14:20
【问题描述】:

我有 2 个列表-

[(Tandoor,印度),(Biryani,印度),(Pizza,意大利)]

{在上面,左边的item是右边的美食类型的食物}

[(约翰,印第安人),(玛丽,印第安人),(萨姆,意大利人)]

{在上面,左边的人可以选择右边的菜式}

我需要将列表的内容打印为 约翰·坦多尔 约翰·比里亚尼 玛丽·坦多尔 玛丽·比里亚尼 山姆比萨

给出了用于初始化 2 个给定列表、打印输出和处理 Pair 对象(比较、访问键和值)的 API。

为什么我在下面得到 nullpointerexception -

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);
    }
}

【问题讨论】:

标签: java oop nullpointerexception linked-list comparator


【解决方案1】:

改变

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<>();
    ...

【讨论】:

  • Console-3 John Indian Mary Indian Sam Italian 3 Tandoor Indian Biryani Indian Pizza Italian 异常 in thread "main" java.lang.NullPointerException at java.util.Collections.sort(Collections.java:141)在 a1.main.main(main.java:99)
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 2020-10-15
相关资源
最近更新 更多