gpt4 book ai didi

java - 保存 List 的状态

转载 作者:行者123 更新时间:2023-12-01 12:08:25 25 4
gpt4 key购买 nike

我创建了一个益智游戏,可以在其中洗牌以重新创建图像。除了我保存数据以便在应用程序重新启动时可以继续游戏的部分之外,该应用程序已基本完成。我找到了一些有关 SharedPreferences 的信息,但我知道不可能用它保存列表。我有一个整数列表,其中包含需要保存的拼图的索引。我尝试将列表转换为字符串并检索它,但它变坏并搞乱了我的整个程序。我的技术不够好,无法解决这个问题,所以我联系你。因此,我的问题是,如何保存我的整数列表?

如果之前有人问过这个问题,请提前抱歉,我已经在互联网上查找了两个多小时,我确实需要一些帮助。 :)

最佳答案

正确的方法是转换为 String ,然后将其放入 SharedPreferences 。您可以将 List 转换为到 String像这样:

public static String listIntToString(List<Integer> list) {
StringBuilder s = new StringBuilder();
for (int i: list)
s.append(i).append(" ");
return s.toString();
}

现在回到List<Integer> :

public static List<Integer> stringToListInt(String s) {
List<Integer> result = new ArrayList<>();
Scanner scan = new Scanner(s);
while (scan.hasNextInt())
result.add(scan.nextInt());
scan.close();
return result;
}

这比为了如此简单的事情而搞乱文件、数据库或 XML 更干净。

<小时/>

其实如果你想变得可爱那么你可以直接转换List<Integer>String使用其 .toString()方法,然后使用它返回到 List<Integer> :

public static List<Integer> defaultStringToListInt(String s) {
List<Integer> result = new ArrayList<>();
Scanner scan = new Scanner(s);
scan.useDelimiter(Pattern.compile("[, \\[\\]]+"));
while (scan.hasNextInt())
result.add(scan.nextInt());
scan.close();
return result;
}

这样,您只需定义一个辅助方法。这是有效的,因为 .toString() List<Integer> 上的方法结果就像这样

[1, 22, -3, 4, 5]

上面的代码使用方括号、逗号和空格作为分隔符扫描查找整数。

关于java - 保存 List<Integer> 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27405098/

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