java - 如何使用java中的方法来存储arraylist中的信息

标签 java arrays arraylist

对于我正在做的一个项目,我想使用一个单独的类来将各种人的信息存储在一个数组列表中。在这种情况下,该方法将包含一个字符串数组列表来存储我的所有信息。当我尝试这样做时,我意识到每次我运行 storage 将字符串添加到 arraylist 时,它都会从 arraylist 中删除所有以前的信息。


是否有可能使字符串 Hello, How Are You?I'm fine.你好吗? 添加到类 two 中的数组,而无需在方法重新运行后重置数组?

public class one
{
    public static void main (String [] args)
    {
        two t = new two();

        t.storage("Hello, How Are You?");
        t.storage("I'm fine. How Are You?");
    }
}
import java.util.ArrayList;
public class two
{
    public static void storage(String toBeAdded)
    {
        ArrayList<String> al = new ArrayList<String>();

        al.add(toBeAdded);
        System.out.println(al);
    }
}

给定输出:

[你好,你好吗?] [我很好。你好吗?]

预期输出:

[你好,你好吗?] [你好吗?, 我很好。你好吗?]

最佳答案

有两种选择可以解决您的问题:

选项(1):您当前的 ArrayList范围是 storage 的本地范围方法 因为您正在创建一个品牌new ArrayList在每次调用时(对 storage() 方法),但您需要的是一个 static ArrayList类级别的对象,如下所示,但因为您正在调用 storage()使用对象的方法,这不是可取的选项(在下面清楚地解释)并且编译器已经发出警告而您忽略了它。

public class two {

    private static ArrayList<String> al = new ArrayList<String>();

    public static void storage(String toBeAdded)
    {
        al.add(toBeAdded);
        System.out.println(al);
    }
}

选项(2)(更喜欢这个):删除static范围和声明 ArrayList<String>作为实例变量,如下所示(更喜欢此选项),因为您正在调用 static使用不需要的对象引用的方法会造成混淆。

public class two {

        private ArrayList<String> al = new ArrayList<String>();

        public void storage(String toBeAdded)
        {
            al.add(toBeAdded);
            System.out.println(al);
        }
    }

始终确保 static变量/方法使用类名(如 Two.storage())调用而不创建任何对象,因为它们是类级别的成员,即,它们并不意味着用于单个对象。我强烈建议你阅读 this并更清楚地理解这个主题。


除了上述要点外,请始终确保您遵循 Java 命名标准,例如类名应以大写字母开头,而您违反了这一点。

关于java - 如何使用java中的方法来存储arraylist中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43303831/

相关文章:

java - JVM 只映射堆栈页吗?

java - GraalVM native 镜像和 Oracle ojdbc11-21.1

java - 如何使用 swagger 为同一对象提供多个示例值

javascript - 将 MongoDB 查询结果转换为 JSONArray

php - 如何对 UTF-8 字符串数组进行排序?

java - 找出类名是否包含某些文本

c# - 使用数组进行 XML 值测试

Java(ArrayList 检查对象的 int)

java - 将 java ArrayList<Comparable> 转换为 Comparable[]

java - ArrayList 还是几个 for 循环?