1

我请你帮忙。

我为我的英语道歉,它还在学习中。我在 Java 的 GUI 中做了一个应用程序。我有一个问题。

在这个应用程序中,我有一个 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),而不是 ArrayList.add(0, 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 回答
4

到目前为止,您收到的所有答案都是正确的。确切地说,如果您想将其添加到数组列表中并且您并不真正关心该位置,只需使用

arrayList.add(arrayText)

否则,使用 TreeSet 会有所帮助。

我尝试这个问题的原因是,您的方法参数正在产生恶意代码气味。我对适当的建议没有几个问题。

  • 你真的需要 8 个参数吗?为什么不定义 POJO(Plain Old Java Object)
  • 如果您认为需要再传递一件事作为论据,会发生什么?你会把它增加到9吗?POJO 是有道理的,而且绝对是一种更清洁的方式
  • 为什么要将所有值连接成一个用逗号分隔的字符串作为分隔符?为什么没有 POJO 列表?它不会达到你的目的吗?实际上,这种方式我不知道您需要操作该字符串多少次,这将导致每次您需要单个特定元素时都进行不必要的工作,并且显然会影响性能。
于 2008-12-30T02:35:20.500 回答
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 为空,则文本将位于第一个位置。下一个添加将在第 2、第 3 等中。

我希望这有帮助。

于 2008-12-30T02:08:35.047 回答
0

如果您关心它的位置,请尝试将其添加到 SortedSet(可能是 TreeSet)

于 2008-12-30T02:12:34.883 回答