gpt4 book ai didi

java - 如何以相同顺序洗牌?

转载 作者:行者123 更新时间:2023-12-01 07:04:59 24 4
gpt4 key购买 nike

我有两个ArrayList,一个是位图类型并包含图片,另一个是一个字符串,其中包含位图的文本。

我只想打乱 Bitmap,但 String ArrayList 的顺序应该相同。

private ArrayList<Bitmap> tmpBitmap = new ArrayList<Bitmap>();
private ArrayList<String> tmpName = new ArrayList<String>();

我尝试过这个,但它以不同的顺序进行洗牌。

Collections.shuffle(tmpWord);
Collections.shuffle(tmpName);

最佳答案

我在评论中说过,您最好将字符串和位图放入对象中,这样您就不需要维护并行列表。基本上是这样的:

class NamedBitmap {
String name;
Bitmap bitmap;
// use privacy modifiers and accessors according to your taste
public NamedBitmap(String name, Bitmap bitmap) {
this.name = name;
this.bitmap = bitmap;
}
}

List<NamedBitmap> namedBitmaps = new ArrayList<NamedBitmap>();

...

Collections.shuffle(namedBitmaps);

这样,名称始终与位图相关联;您不必以相同的顺序保留两个列表来保持它们的关联。

在结构和对象提供更好的选择之前,并行数组(或列表)是人们关联相关数据的方式。

编辑:

给定 List<NamedBitmap> namedBitmaps如上所述,您可以使用以下方法向其中添加内容:

namedBitmaps.add(new NamedBitmap(givenName, givenBitmap));

您可以使用 namedBitmaps.get(i).name 访问名称和位图和namedBitmaps.get(i).bitmap .

关于java - 如何以相同顺序洗牌?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27390485/

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