Это очень сложно сделать. Это возможно, конечно, но сложно.
Это становится трудным делом, потому что то, что вы хотите сделать, это странно.
Обычный способ сделать это:
- Создайте класс, представляющий одну запись, назовем его
class Person
. - Считайте эти данные, проанализировав каждую строку в одном экземпляре
Person
, и добавьте их все в список. - Просто позвоните
Collections.shuffle(list);
, чтобы перетасовать их.
Если у нас есть вышеперечисленное, мы можем сделать то, что вы хотите, преобразовав List<Person>
обратно в List<String>
. Во многих отношениях это самый простой способ выполнить задачу, которую вы запрашиваете, но затем вы начинаете задумываться, зачем вам эти данные в виде списка строк.
enum Gender {
MALE, FEMALE, OTHER;
public static Gender parse(String in) {
switch (in.toLowerCase()) {
case "male": return MALE;
case "female": return FEMALE;
default: return OTHER;
}
}
class Person {
String name;
String location;
Gender gender;
[some type that properly represents whatever 10G and 10W means];
public static Person readLine(String line) {
String[] parts = line.split("\\s+", 4);
Person p = new Person();
p.name = parts[0];
p.location = parts[1];
p.gender = Gender.parse(parts[2]);
...;
return p;
}
}
вы получаете идея.