java怎么将有1万个元素的list飞两批进行同时遍历
时间: 2023-05-21 17:01:58 浏览: 58
可以使用多线程的方式将一个大的 List 分成两个部分进行遍历。具体实现可以使用 Java 的 Executor 框架,将 List 分成两个部分,然后将两个部分分别交给两个线程进行遍历。代码示例:
```
List<Integer> list = new ArrayList<>();
// 添加 1 万个元素到 list 中
int size = list.size();
int mid = size / 2;
List<Integer> list1 = list.subList(0, mid);
List<Integer> list2 = list.subList(mid, size);
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
for (Integer i : list1) {
// 遍历 list1
}
});
executor.submit(() -> {
for (Integer i : list2) {
// 遍历 list2
}
});
executor.shutdown();
```
这样就可以同时遍历两个部分,提高遍历效率。
相关问题
java怎么快速遍历完有1万个元素的list
可以使用增强for循环来遍历List,代码如下:
for(Object obj : list) {
// do something with obj
}
另外,也可以使用迭代器来遍历List,代码如下:
Iterator<Object> iterator = list.iterator();
while(iterator.hasNext()) {
Object obj = iterator.next();
// do something with obj
}
这两种方法都可以快速遍历List中的元素。
java代码一共2万条数据 一页100条 遍历掉完
如果您有一个包含2万条数据的列表,并且每页显示100条数据,您可以使用循环来遍历并处理这些数据。以下是一个示例代码:
```java
public class DataProcessor {
public static void main(String[] args) {
List<String> dataList = new ArrayList<>(); // 假设这是您的数据列表
// 模拟添加2万条数据
for (int i = 1; i <= 20000; i++) {
dataList.add("Data " + i);
}
int pageSize = 100; // 每页显示的数据量
int totalPages = (int) Math.ceil((double) dataList.size() / pageSize); // 总页数
for (int page = 1; page <= totalPages; page++) {
int startIndex = (page - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, dataList.size());
List<String> currentPageData = dataList.subList(startIndex, endIndex);
// 处理当前页的数据
for (String data : currentPageData) {
// 进行数据处理操作
System.out.println(data);
}
}
}
}
```
在上面的示例中,我们首先创建一个包含2万条数据的列表 `dataList`。然后,我们计算出总页数 `totalPages`,通过将数据总量除以每页显示的数量并向上取整得到。
接下来,使用循环遍历每一页的数据。我们使用 `startIndex` 和 `endIndex` 来确定当前页的起始索引和结束索引。然后,使用 `subList` 方法获取当前页的数据子列表。
最后,我们可以在处理当前页的数据的循环中执行您想要的处理操作。在示例中,我们只是简单地将数据打印出来。
请注意,这只是一个简单的示例,您可以根据实际需求来适配您的代码。同时,如果您需要对大量数据进行处理,可能需要考虑分页加载或使用其他技术来提高性能。