gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:03 24 4
gpt4 key购买 nike

对于我正在做的一个项目,我想使用一个单独的类来将各种人的信息存储在一个数组列表中。在这种情况下,该方法将包含一个字符串数组列表来存储我的所有信息。当我尝试这样做时,我意识到每次我运行 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com