优雅的使用Java从List均匀分三段随机取分段中的一条数据,最后取得三条数据代码实现
时间: 2023-12-10 12:39:28 浏览: 25
以下是使用Java将List均匀分为三段,并从每个分段中随机取一条数据的代码实现:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class ListSplitAndRandom {
public static void main(String[] args) {
// 初始化List
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("G");
list.add("H");
list.add("I");
// 将List均匀分为三段
int size = list.size();
int eachSize = size / 3;
int remainder = size % 3;
int startIndex = 0;
int endIndex = 0;
List<List<String>> splitList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
endIndex += eachSize;
if (i < remainder) {
endIndex++;
}
splitList.add(list.subList(startIndex, endIndex));
startIndex = endIndex;
}
// 从每个分段中随机取一条数据
Random random = new Random();
List<String> result = new ArrayList<>();
for (List<String> subList : splitList) {
int index = random.nextInt(subList.size());
result.add(subList.get(index));
}
// 输出结果
System.out.println(result);
}
}
```
输出结果为类似于 `[B, E, G]` 的字符串列表,表示从每个分段中随机取得的一条数据。