List<Data> list = new ArrayList<Data>();
public class Data{
public int n;
public String p;
public Data(int N, String P) {
n = N;
p = P;
}
}
如何改变对象的整数:数据。所以String保持在同一个位置,并且Integer得到了洗牌。
答案 0 :(得分:3)
循环遍历list
并将每个int
对象的Data
存储在单独的列表中。使用Collections.shuffle(...)
随机播放此列表。循环遍历此新的随机列表,并将n
的每个相应成员的list
字段设置为随机列表中找到的新随机int
。
答案 1 :(得分:0)
可能必须自己做:
for (int i = list.size(); i > 0; i--) {
int j = (int)(Math.random() * (i + 1));
int temp = list.get(i).n;
list.get(i).n = list.get(j).n;
list.get(j).n = temp;
}
你可以从java库中做的最好的事情是首先将它分成两个列表,一个是int,一个是字符串,然后只对int进行洗牌(使用Collections.shuffle),然后将两个列表合并为一个列表DATAS