Получаю ошибку! ! ! ! !
это дает мне эту ошибку, и я не знаю, как ее исправить:
Exception in thread "main" java.lang.NullPointerException at Testing.main(Testing.java:61)
Что я уже пробовал:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Testing { public static void main(String args[]) { List<String> teams = new ArrayList<String>(); // List<String> ghosts = new ArrayList<String>(); // HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>(); String ghoststr; teams.add("A"); teams.add("B"); teams.add("C"); teams.add("D"); teams.add("E"); int ghost = teams.size() % 2; ghoststr = "GHOST"; if (ghost == 1 ) { teams.add(ghoststr); //ghosts.add("GHOST"); } //teams.add("G"); //teams.add("F"); int totalRounds = teams.size()-1; int matchesPerRound = teams.size()/2; Game[][] rounds = new Game[totalRounds][matchesPerRound]; //String ght = teams.get(teams.size()-1); for (int round = 0; round< totalRounds; round++) { for (int match = 0; match < matchesPerRound; match++) { int home = (round + match) % (teams.size() - 1); int away = (teams.size() - 1 - match + round) % (teams.size() - 1); String team1 = teams.get(home); String team2 = teams.get(away); if (match == 0) { away = teams.size()-1; } //if ( team1 != team2) rounds[round][match].team1= team1; rounds[round][match].team2 = team2; //rounds[round][match] = Game.team1 + " v " + team2 ; } } for (int i = 0; i < rounds.length; i++) { for(int j = 0; j < rounds.length ; j++) { System.out.println("Round " + (i + 1)); if ( !(rounds[i][j].team1.equals(ghoststr) || rounds[i][j].team2.equals(ghoststr)) ) { String printstr = rounds[i][j].team1 + "V" + rounds[i][j].team2; System.out.println(printstr); System.out.println(); } } } } } class Game { String team1; String team2; }
CHill60
Является ли строка, дающая ошибку rounds[round][match].team1= team1;
?
Member 13110105
да
CHill60
Тогда я подозреваю, что вы не установили rounds[round][match] для экземпляра объекта Games.
Я подозреваю, что вам нужна линия, похожая на rounds[round][match] = new Game;
Member 13110105
Спасибо но теперь оператор if в приведенном ниже коде дает мне проблему:
for (int i = 0; i < rounds.длина; i++) {
для (int j = 0; j < раундов.длина ; j++)
{
Системы.из.код println("круглый" + (я + 1));
если ( !(круги[я][Дж].КОМАНДА1.равно(ghoststr) || патронов[я][Дж].команда2.равно(ghoststr)) )
{
Строки printstr = раунда[я][Дж].КОМАНДА1 + "в" + круги[я][Дж].команда2;
Системы.из.код println(printstr);
Системы.из.код println();
}
}
}
ошибка заключается в следующем :
Ява.яз.ArrayIndexOutOfBoundsException: 3
в тестирование.основной(тестирование.Ява:78)
CHill60
Судя по звуку, вы сбежали с конца массива. Отладьте и проверьте значения i,j и раундов.длина
Member 13110105
есть ли способ это исправить? если да, то как?