この形式のファイルからこのプログラムをコンパイルすることはできません( "Via"は "for road" 「)私は学校でのプログラミングの練習をしていますが、 "java.util.ConcurrentModificationException"エラーを解決できません。
ヴィアエミリア - >経由ボッティ
経由カステッロ - >ヴィアエミリア
アッピア街道 - >経由ボッティ
経由ボッティ - >ヴィアエミリア
経由カステッロ - >経由アメンドラ
アッピア通り - >アンコーナ通り
カステッロ通り - >ボッティ通り
経由オッティ - >経由カルソ・
経由アンコーナ - >経由オッティ
経由カルソ - >経由オッティ
そして第三の質問には次のように(再帰的である道路別にものを見つけるために私を頼みます - > bとb - > a)、しかし、私は(aとbが再帰的で、bとaが再帰的であるように)重複した回答の可能性を取り除く条件をつけると、 "java.util.ConcurrentModificationException" 、 どういう意味ですか?
これは、これは3番目の質問
public static void punto3(ArrayList<percorso> perc) throws Exception{
BufferedWriter bw=new BufferedWriter(new FileWriter("3.html"));
bw.write("<html> \n <body> \n");
bw.write("<h1> Punto 3 </h1> \n");
bw.write("<h3><i> Trovare le coppie di strade che formano un anello chiuso </h3></i> \n");
ArrayList<percorso> perc2 = new ArrayList<percorso>();
for (percorso k: perc)
perc2.add(k);
ArrayList<String[]> Arr = new ArrayList<String[]>();
for (percorso i: perc2){
for (percorso j: perc2){
if (i.from.equals(j.to) && i.to.equals(j.from)){
String [] e = {i.from,i.to};
Arr.add(e);
}
}
}
ArrayList<String[]> Arr2 = new ArrayList<String[]>();
for (String [] z: Arr){
Arr2.add(z);}
for (String [] f: Arr){
for (String [] j: Arr2){
if (f[0].equals(j[1]) && j[0].equals(f[1]))
Arr.remove(j);
}
}
for (String [] x: Arr)
bw.write("le vie "+x[0]+", "+x[1]+" formano un anello chiuso <br>");
bw.write("</body> \n </html> \n");
bw.close();
}
とクラスpercorsoで答えをコンパイルする方法であり、メイン
public static void main(String[] args) throws Exception{
ArrayList<percorso> perc = new ArrayList<percorso>();
String line;
BufferedReader br = new BufferedReader(new FileReader("vie.txt"));
while ((line = br.readLine())!=null){
percorso p = new percorso (null,null);
String [] e = line.split("-->");
p.from = e[0];
p.to = e[1];
perc.add(p);
}
br.close();
//punto1(perc);
//punto2(perc);
punto3(perc);
}
あなたは、次の
public class percorso {
String from;
String to;
public percorso (String from,String to){
this.from = from;
this.to = to;
}
}
スタックトレースを追加することができますか、その例外をどのラインで得ることができますか? –
この問題については、SOのドキュメント項目があります。チェックアウト:https://stackoverflow.com/documentation/java/90/collections/2197/removing-items-from-a-list-within-a-loop#t=201706281424260548454 – GPI
'Arr.remove(j);' < - あなたがそれを反復している間、 'Arr'の内容を変更しています。あなたはそれを行うことができますが、 'for'またはenhanced' for'ループではなく、 'Iterator'リファレンスを使用する必要があります。 – JonK