Java 保留来自先前变量和输出的信息

Java 保留来自先前变量和输出的信息,java,list,Java,List,制作一个小程序,在其中输入Word/s,并将其转换为数字,这样我就可以将这些数字用于诸如Rimworld或Minecraft等游戏的种子 我目前使用的是: String levelSeed= "hello"; int levelSeedNum = levelSeed.hashCode(); System.out.println(levelSeed); 这很有效。但是我一直在考虑将单词/s和hashcode放在一个列表中,这样我就可以看到我已经使用过的内容。我似乎不知道该怎么做,因为当我添加一个

制作一个小程序,在其中输入Word/s,并将其转换为数字,这样我就可以将这些数字用于诸如Rimworld或Minecraft等游戏的种子

我目前使用的是:

String levelSeed= "hello";
int levelSeedNum = levelSeed.hashCode();
System.out.println(levelSeed);
这很有效。但是我一直在考虑将单词/s和hashcode放在一个列表中,这样我就可以看到我已经使用过的内容。我似乎不知道该怎么做,因为当我添加一个新词时,它会重置我的列表

ArrayList<String> ls = new ArrayList<String>();
ls.add(levelSeed);
System.out.println(ls);

不让列表在每次执行代码时重置的最佳方法是什么?

您的问题似乎是每次有新种子时都将ls分配给新列表:

ArrayList<String> ls = new ArrayList<String>();
这意味着你失去了旧列表中的所有内容。只需初始化该列表一次,然后向其中添加多个元素:

ArrayList<String> ls = new ArrayList<String>(); //this creates a new, empty list
//... do stuff
ls.add(aSeed);
//... do stuff
ls.add(anotherSeed);
//ls now has two elements in it
ls = new ArrayList<String>();
//and now it's empty
编辑

如果您想一个种子一个种子地构建列表,您需要在某种循环中完成。下面是一个简单的例子:

final int NUM_SEEDS = ...;
for (int i = 0; i < NUM_SEEDS; i++) {
    String seed = ... //collect a seed by whatever means you're using
    lst.add(seed);
}
//lst.size() is now NUM_SEEDS.

您可以将列表保存在文件中,并在程序启动时检索它。这是假设您希望保留以前运行的列表。否则,您可能会想检查是否有一种方法可以使其自动化,而不是总是需要执行ls.addseed?我假设它将涉及某种形式的循环系统,将新种子直接添加到阵列中。我添加了一个小例子来给你一个想法。