Я сказал в комментариях, что вы бы лучше положить строки и растровые изображения в объекты вместе, чтобы вы не Не нужно поддерживать параллельные списки. Вот как это делается:
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);
Таким образом, имена всегда привязаны к растровым изображениям; вам не нужно сохранять два списка в одном порядке, чтобы поддерживать их.
Параллельные массивы (или списки) - это то, как люди должны были связывать связанные данные за время, прежде чем структуры и объекты предоставили лучшие варианты.
Edit:
Учитывая List<NamedBitmap> namedBitmaps
, как описано выше, вы можете добавить материал в него с помощью:
namedBitmaps.add(new NamedBitmap(givenName, givenBitmap));
, и вы можете получить доступ имена и растровые изображения с помощью namedBitmaps.get(i).name
и namedBitmaps.get(i).bitmap
.
Я думаю, вы имеете в виду, что хотите, чтобы два параллельных списка имели одинаковые тасования. Вам было бы лучше помещать связанные предметы в объекты, а не использовать параллельные списки. – khelwood
Как вы это понимаете? Можете ли вы разместить пример кода? – Unknown
Теоретически вы можете создать два экземпляра java.util.Random с тем же самым семенем и указать один из них при первом перетасовке, а второй - во втором перемещении. Учитывая ту же длину и одну и ту же последовательность псевдослучайных чисел, shuffle будет производить ту же перестановку. Избавление от параллельных списков путем объединения полей в один объект может привести к увеличению количества поддерживаемых кодов. –