-2

コードのどこが間違っているか教えてください。実は、私が望んでいるのは、ドキュメントのペアを使用してクラスターを形成することです。私のテキスト ファイルには 1000 近くの数値のペアがあるため、最初のペアを入力として取得し、それを配列に格納する必要があります。次に、2 番目のペアを取得して、いずれかの要素が存在するかどうかを確認する必要があります。配列に要素が 1 つしか存在しない場合は、他の要素を同じ配列に追加する必要があります。両方の要素が配列に存在しない場合は、新しい配列に格納する必要があります。

サンプル入力:
(23,7)
(11,23)
(1,5)
(67,5)
(34,17)

出力:
(23,7,11)
(1,5,67)
(34,17)

私の問題は、整数であるためテキスト ファイルから入力を取得できないことですが、テキスト ファイルを分割するには文字列にする必要があります。2 つ目の問題は、それを別の配列に格納できないことです。配列が宣言されると、要素が上書きされます。dis は、配列リストに数値を格納するために作成したコードですが、要素を別の配列に格納することはできません。新しい配列リストを宣言する場所がわかりません。

ArrayList a = new ArrayList();
a.add(i);
a.add(j);
if (!a.contains(i) && !a.contains(j))
{
    a.add(i);
    a.add(j);
    System.out.println("the cluster is" +a);
}
else if(a.contains(i) && !a.contains(j))
{
    a.add(j);
    System.out.println("the cluster is" +a);
}
else if(!a.contains(i) && a.contains(j))
{
    a.add(i);
    System.out.println("the cluster is" +a);
}
4

1 に答える 1

0

1) 整数であることは問題ではありません。上記の「i」および「j」変数は、この目的のために文字列にすることができます。2) 単一の ArrayList がこの種の情報を保持することはありません。考慮すべきオプションはありますが、最も簡単なのは array-of-arrays: ArrayList<ArrayList<String>> pairs = new ArrayList<ArrayList<String>> ();です。この場合、外側のリストの各要素は、目的の出力と同じ文字列の配列です。次に、コードは次のようになります。

// For each inner array in the outer array,
//    check to see if it contains either, neither, or both of i or j 
//    If it contains one, add the other to the inner array
//    Else if it contains neither, make a new array of strings and add that to the outer array

それを試してみて、また行き詰まったら、戻って質問してください。

于 2013-03-28T16:46:44.377 に答える