Untitled

 avatar
Darin
plain_text
a year ago
1.0 kB
2
Indexable
Never
Đoạn code sau của tôi bị lỗi tại dòng: arrMin.get(i).add(Pmax[i][k]);
Báo lỗi là Null Pointer Exception, hãy giúp tôi sửa đoạn code này

int move(int mNum) {
		int sum = 0;

		Passenger[][] Pmax = new Passenger[NOS - 1][mNum];
		Passenger[][] Pmin = new Passenger[NOS - 1][mNum];

		for (int i = 0; i < NOS - 1; i++) {
			arrMin.set(i, new PriorityQueue<>(arrMin.get(i)));
			for (int k = 0; k < mNum; k++) {
				Pmin[i][k] = arrMin.get(i).poll();
			}
		}

		for (int i = 1; i < NOS; i++) {
			arrMin.set(i, new PriorityQueue<>(
					(Passenger a, Passenger b) -> a.pPoint == b.pPoint ? a.pId
							- b.pId : b.pPoint - a.pPoint));
			for (int k = 0; k < mNum; k++) {
				Pmax[i - 1][k] = arrMin.get(i).poll();
			}
		}

		for (int i = 0; i < NOS - 1; i++) {
			for (int k = 0; k < mNum; k++) {
				arrMin.get(i).add(Pmax[i][k]);
				arrMin.get(i + 1).add(Pmin[i][k]);
				sum += Pmin[i][k].pPoint + Pmax[i][k].pPoint;
			}
		}

		return sum;
	}