使用循环向arraylist中添加元素



我的问题很简单,但是我找不到解决它的方法。基本上,我想创建一个Arraylist并使用循环向其添加元素(最多我想要的元素)。我使用netbeans gui,每当我按下按钮"添加",我想添加字符串变量的名称和大写到我的数组列表,并显示在一个TextArea。比如:

[london, england,america,united states etc..] 
到目前为止,它所做的唯一的事情就是多次打印两个变量name和大写字母,如:
[londonn, england, london, england etc..]
下面是代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String name, capital;
    ArrayList<String> input = new ArrayList<>();
    name = jTextField1.getText();
    capital = jTextField2.getText();
    for(int i=0;i < 10;i++) {
        input.add(name);
        input.add(capital);
        jTextArea4.setText(String.valueOf(input));
    }      
}

如果你想让你的ArrayList持续增长,那么你需要让它成为一个类变量,而不是你的jButton1ActionPerformed的局部变量。

同时取出for回路。当你给你的ArrayList添加一个新的名字和大写字母时,你只需要做一次。

像这样:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // Make sure input is a class variable and it will continue to grow                                         
    input.add(jTextField1.getText());
    input.add(jTextField2.getText());
    jTextArea4.setText(String.valueOf(input));      
}

一旦你的ArrayList是一个类变量,你会想要一种方法来清除ArrayList或从它删除项目。

您必须删除for循环,因为您多次存储相同的值。

你可以这样做。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String name, capital;
ArrayList<String> input = new ArrayList<>();
name = jTextField1.getText();
capital = jTextField2.getText();
    input.add(name);
    input.add(capital);
    jTextArea4.setText(String.valueOf(input));  

}

这里从文本字段中获取名称和大写值,并将其插入数组列表中,然后在textfield4..

如果你想添加尽可能多的元素,你可以这样做,但当你设置jtextField4你必须从输入数组列表中获得最后一个元素,因为数组列表对象包含10个字符串。

这样的

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String name, capital;
ArrayList<String> input = new ArrayList<>();
name = jTextField1.getText();
capital = jTextField2.getText();
for(int i=0;i < 10;i++) {
    input.add(name);
    input.add(capital);
    jTextArea4.setText(String.valueOf(input.get(input.size)));
}      

}

尝试将jTextArea4.setText(String.valueOf(input))移出for loop

您需要在循环之外保持以下代码:

jTextArea4.setText(String.valueOf(input));

完全删除循环。如果你想让数组列表有用你必须让它成为一个类级变量

ArrayList<String> input = new ArrayList<>();
private void jButton1ActionPerformed(ActionEvent evt) {                                         
String name, capital;
name = jTextField1.getText();
capital = jTextField2.getText();
    input.add(name);
    input.add(capital);
    jTextArea4.setText(String.valueOf(input));

}

相关内容

  • 没有找到相关文章

最新更新