// 1. 获取原有的分页对象列表 System.out.println("原始数组"); List<Dog> originalList = getList(); for (Dog dog : originalList) { System.out.println(dog.toString()); } // 2. 从列表中删除第25、26、27项,并记录它们的位置和值 List<Dog> removedItems = new ArrayList<>(); removedItems.add(originalList.remove(26)); // 第27项 removedItems.add(originalList.remove(25)); // 第26项 removedItems.add(originalList.remove(24)); // 第25项 System.out.println("删除后数组"); for (Dog dog : originalList) { System.out.println(dog.toString()); } // 3. 将剩余的项按照原有的分页规则进行分页 int pageSize = 10; // 每页显示10项 int totalItems = originalList.size(); int totalPages = (int) Math.ceil((double) totalItems / pageSize); List<List<Dog>> pageList = new ArrayList<>(); for (int i = 0; i < totalPages; i++) { int fromIndex = i * pageSize; int toIndex = Math.min(fromIndex + pageSize, totalItems); pageList.add(originalList.subList(fromIndex, toIndex)); } // 4. 将删除的项插入到第5页的最后一项之后 int insertIndex = 0; // 第5页的最后一项 List<Dog> fifthPage = pageList.get(4); for (Dog item : removedItems) { fifthPage.add(insertIndex++, item); } // 5. 返回新的分页对象列表 List<Dog> newPageList = new ArrayList<>(); for (List<Dog> page : pageList) { newPageList.addAll(page); } for (Dog dog : newPageList) { System.out.println(dog.toString()); }巴平措
时间: 2024-02-14 18:24:10 浏览: 70
这段代码的功能是将一个列表进行分页,并在指定页码的最后插入一些删除的项。
具体来说,代码先获取原始列表,然后从中删除第25、26、27项,并记录下来。接着按照指定的页码大小对原始列表进行分页,得到一个分页列表。最后将删除的项插入到第5页的最后一项之后,再将分页列表合并成一个新的列表并输出。
需要注意的是,这段代码中的Dog类使用了Lombok注解,需要先安装Lombok插件才能编译通过。同时,分页的算法可能不是最优的,例如当列表大小不能被页码大小整除时可能会出现问题。
相关问题
Map<String, List<String>> oneToManyMap = new HashMap<>(); 和 List<List<String>>的区别
Map<String, List<String>>和List<List<String>>的区别如下:
1. Map<String, List<String>>是一种键值对的数据结构,其中的每个键都对应一个值而值可以是一个字符串列表。通过键可以速查找对应的值。例如,可以使用键来获取与之关联的字符串列表。
2. List<List<String>>是一个嵌套的列表结构,其中的每个元素都是一个字符串列表。它没有键值对的概念,只是一个简单的列表。可以通过索引来访问列表中的元素。例如,可以使用索引来获取嵌套列表中的特定字符串列表。
示例代码如下:
```java
// 创建一个Map<String, List<String>>对象
Map<String, List<String>> oneToManyMap = new HashMap<>();
// 向Map中添加键值对
List<String> list1 = new ArrayList<>();
list1.add("value1");
list1.add("value2");
oneToManyMap.put("key1", list1);
List<String> list2 = new ArrayList<>();
list2.add("value3");
list2.add("value4");
oneToManyMap.put("key2", list2);
// 创建一个List<List<String>>对象
List<List<String>> listOfLists = new ArrayList<>();
// 向列表中添加字符串列表
List<String> innerList1 = new ArrayList<>();
innerList1.add("value1");
innerList1.add("value2");
listOfLists.add(innerList1);
List<String> innerList2 = new ArrayList<>();
innerList2.add("value3");
innerList2.add("value4");
listOfLists.add(innerList2);
// 访问Map中的值
List<String> valuesForKey1 = oneToManyMap.get("key1");
System.out.println(valuesForKey1); // 输出:[value1, value2]
// 访问列表中的元素
List<String> innerList = listOfLists.get(0);
System.out.println(innerList); // 输出:[value1, value2]
```
List<List<Integer>> nums=new ArrayList<>();
在Java中,`List<List<Integer>> nums = new ArrayList<>();` 这行代码创建了一个二维列表 `nums`,它是一个动态数组,底层是由 `ArrayList` 类实现的。这里的 `List<Integer>` 是一个泛型声明,表示每个元素都是一个整数列表。所以,`nums` 可以存储一系列包含整数的列表。
例如,你可以像下面这样添加元素:
```java
nums.add(new ArrayList<>(Arrays.asList(1, 2, 3))); // 添加一个包含1, 2, 3的列表
nums.add(Arrays.asList(4, 5)); // 添加另一个只包含两个元素的列表
```
要访问其中的元素,可以使用索引来操作单个列表,或者遍历整个二维列表:
```java
List<Integer> innerList = nums.get(0); // 获取第一个列表
for (List<Integer> list : nums) {
System.out.println(list); // 遍历所有列表并打印它们的内容
}
```
阅读全文