1

あなたの助けをお願いします。

英語はまだ学習中です。Java の GUI で 1 つのアプリケーションを実行します。問題が 1 つあります。

このアプリケーションには、データに対応したい ArrayList があります。

ユーザーがボタンをクリックすると、JTextfield からのデータが Arraylist に配置されます。

その場合、最初の行にのみ挿入されます。Arraylist の他のエントリはそうではありません。

どうすればいいのか聞いてください。

ここに私のアプリケーションのコードがあります:

public void save_to_array(String jmeno_zad,
                          String prijmeni_zad,
                          String rodne_cislo_zad,
                          String mesto_zad,
                          String spz_zad,
                          String barva_zad, 
                          String vin_zad, 
                          String znacka_zad){


            String arraytext=prijmeni_zad+ ","+
            jmeno_zad+ ","+ 
            rodne_cislo_zad+ ","+
            mesto_zad+","+
            spz_zad+","+
            barva_zad+","+
            vin_zad+","+
            znacka_zad; 

            int posl=arlist.size(); 
            if(arlist.isEmpty()||posl==1){ 
                arlist.add(0,arraytext);
            } 

            if(!arlist.isEmpty()&& posl>1){ 
                arlist.add(posl-1, cele_jmeno); 
            }
        } 
4

4 に答える 4

4

あなたが今までに受け取ったすべての答えは正しいです。正確には、それを配列リストに追加したいが、位置をあまり気にしない場合は、単に使用してください

arrayList.add(arrayText)

それ以外の場合は、代わりに TreeSet を使用すると役立ちます。

この質問を試みた理由は、メソッドの引数がコードの悪臭を放っているためです。適切な提案を伴ういくつかの質問があります。

  • 本当に8つの引数が必要ですか? POJO (Plain Old Java Object) を定義しない理由
  • 引数としてもう 1 つ渡す必要があると考えたらどうなるでしょうか。9に増やしますか?POJOは理にかなっており、間違いなくよりクリーンな方法です
  • 区切り記号として、すべての値をカンマで区切られた 1 つの文字列に連結するのはなぜですか? POJO のリストがないのはなぜですか? それはあなたの目的を果たしませんか?実際、この方法では、その文字列を何回操作する必要があるかわかりません。これにより、単一の特定の要素が必要になるたびに不要な作業が発生し、明らかにパフォーマンスに影響します。
于 2008-12-30T02:35:20.500 に答える
4

ArrayList.add(0, arraytext) ではなく、ArrayList.add(arraytext) を使用してください。最終的にどの位置になるかはあまり気にしませんよね?

交換

 int posl=arlist.size(); 
 if(arlist.isEmpty()||posl==1){ 
            arlist.add(0,arraytext);
  }
  if(!arlist.isEmpty()&& posl>1){ 
            arlist.add(posl-1, cele_jmeno); 
  }

arlist.add(arraytext);
于 2008-12-30T02:07:10.197 に答える
0

わかりました、これが正しく理解できるかどうか見てみましょう。

JTextField があります。

あなたのコードに関しては、arraylistが空の場合、テキストを最初の位置に配置する必要があることを理解しています。

が空でない場合、次の位置に配置する必要がありますか?

それは次のようになります。

public void saveToArray(  String jmeno_zad,
                          String prijmeni_zad,
                          String rodne_cislo_zad,
                          String mesto_zad,
                          String spz_zad,
                          String barva_zad, 
                          String vin_zad, 
                          String znacka_zad) {


            String arrayText=prijmeni_zad+ ","+
                             jmeno_zad+ ","+ 
                             rodne_cislo_zad+ ","+
                             mesto_zad+","+
                             spz_zad+","+
                             barva_zad+","+
                             vin_zad+","+
                             znacka_zad; 

            arrayList.add( arrayText );

 }

デフォルトでは、arraylist が空の場合、テキストは 1 番目の位置になります。次の追加は 2 番目、3 番目などになります。

これが役立つことを願っています。

于 2008-12-30T02:08:35.047 に答える
0

位置が気になる場合は、SortedSet (おそらく TreeSet) に追加してみてください。

于 2008-12-30T02:12:34.883 に答える