我正在尝试在 picasso 中生成随机字符串数组 url,一切正常,但它会重复,就像我启动应用程序时有 28 个字符串数组项目,有些项目正在重复,但随机启动时我一次只想要 1 个项目
这是我的代码
ImageView imageView = itemView.findViewById(R.id.imageview);
random = new Random();
int p= random.nextInt(icons.length);
Picasso.get().load(icons[p]).into(imageView);
最佳答案
您可以在数组/列表中跟踪以前生成的整数,并在每次生成新的随机数时检查该数组。这样,如果生成的新整数已经存在于数组中,则生成一个新整数,直到生成 28 个数字,之后必须清除数组并重新开始。
ImageView imageView = itemView.findViewById(R.id.imageview);
Random random = new Random();
List<Integer> prevInts = new ArrayList<>();
Picasso.get().load(icons[randomUniqueInteger()]).into(imageView);
public int randomUniqueInteger(){
int p = 0;
do {
p = random.nextInt(icons.length);
} while(prevInts.contains(p));
if ((prevInts.size + 1) == icons.length){
prevInts.clear();
}
prevInts.add(p);
return p;
}
关于java - 如何生成不重复的随机字符串数组 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56312085/