JAVA 如何快速截取集合的前10个的数据

本文介绍了在Java中,如何通过`subList`方法结合`Math.min`函数来安全地从列表中获取最多10个元素,避免数组越界异常,提供了两个示例以帮助理解。
摘要由CSDN通过智能技术生成

JAVA 如何快速截取集合的前10个的数据

参考代码:

        List<PosJsfs> list= dzService.userJsfslist(term);
        return list.subList(0, Math.min(10, list.size())); //只取前10个

其中  Math.min(10, list.size())可以确保当值不足10个时不会发生数组越界异常

比喻:

    public static void main(String[] args) {
         List<Integer> list=new ArrayList<>(),list1;
         list.add(1);
         list.add(2);
         list.add(3);

         list1=list.subList(0, Math.min(10, list.size()));
         for(Integer item:list1){
             System.out.println(item);
//            log.info("item:{}", item);
         }

    }

    public static void main(String[] args) {
         List<Integer> list=new ArrayList<>(),list1;
         list.add(1);
         list.add(2);
         list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        list.add(8);
        list.add(9);
        list.add(10);
        list.add(11);

         list1=list.subList(0, Math.min(10, list.size()));
         for(Integer item:list1){
             System.out.println(item);
//            log.info("item:{}", item);
         }

    }

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是一个简单的树状数据模糊查询分页的Java示例代码: ```java // 定义一个树节点类 class TreeNode { private int id; private String name; private List<TreeNode> children; // 构造函数 public TreeNode(int id, String name) { this.id = id; this.name = name; this.children = new ArrayList<TreeNode>(); } // 添加子节点 public void addChild(TreeNode node) { this.children.add(node); } // 模糊查询 public List<TreeNode> fuzzySearch(String keyword) { List<TreeNode> result = new ArrayList<TreeNode>(); if (this.name.contains(keyword)) { result.add(this); } for (TreeNode child : this.children) { result.addAll(child.fuzzySearch(keyword)); } return result; } // 分页查询 public List<TreeNode> getPage(int pageNum, int pageSize) { int startIndex = (pageNum - 1) * pageSize; int endIndex = Math.min(startIndex + pageSize, this.children.size()); return this.children.subList(startIndex, endIndex); } } // 使用示例 public static void main(String[] args) { // 构造一个示例树 TreeNode root = new TreeNode(1, "root"); TreeNode node1 = new TreeNode(2, "node1"); TreeNode node2 = new TreeNode(3, "node2"); TreeNode node3 = new TreeNode(4, "node3"); root.addChild(node1); root.addChild(node2); node1.addChild(node3); // 进行模糊查询并分页 List<TreeNode> searchResult = root.fuzzySearch("node"); int pageNum = 2; // 第2页 int pageSize = 1; // 每页1条记录 List<TreeNode> pageResult = searchResult.get(0).getPage(pageNum, pageSize); for (TreeNode node : pageResult) { System.out.println(node.name); } } ``` 这个示例代码中,首先定义了一个树节点类`TreeNode`,其中包含节点的ID、名称和子节点列表。这个类提供了两个方法,分别用于模糊查询和分页查询。 在模糊查询方法中,首先判断当节点的名称是否包含关键词,如果是,则将当节点加入结果列表中;然后递归地对子节点进行模糊查询,并将结果加入结果列表中。 在分页查询方法中,根据页码和每页记录数计算出起始索引和结束索引,并通过`subList`方法截取子节点列表中相应的部分。 最后,在使用示例中,构造了一个示例树,然后对树进行模糊查询,并分页输出查询结果的第二页。 ### 回答2: 树状数据模糊查询分页Java指的是对树状结构的数据进行模糊查询,并将查询结果进行分页展示的Java代码实现。 在开始编写代码之,首先需要定义一个树状数据结构的类,包含一个节点和其子节点的列表。每个节点应该包含一个唯一的标识符和要查询的数据。例如: ```java class TreeNode { private String id; private String data; private List<TreeNode> children; // 省略getter和setter方法 } ``` 接下来,编写一个方法用于进行模糊查询,并返回符合条件的节点集合。这个方法应该接受一个树状数据结构的根节点和查询关键字作为参数。方法中需要遍历树的每个节点,判断该节点的数据是否包含查询关键字,如果包含则将该节点添加到结果集中。同时,递归调用这个方法,将当节点的子节点作为新的根节点进行查询,将结果合并到结果集中。例如: ```java List<TreeNode> fuzzySearch(TreeNode root, String keyword) { List<TreeNode> result = new ArrayList<>(); if (root == null) { return result; } if (root.getData().contains(keyword)) { result.add(root); } List<TreeNode> children = root.getChildren(); if (children != null) { for (TreeNode child : children) { result.addAll(fuzzySearch(child, keyword)); } } return result; } ``` 最后,编写一个分页方法用于将查询结果分页展示。这个方法应该接受查询结果集合、页码和每页的大小作为参数。在方法内部,根据给定的页码和每页的大小,计算出起始索引和结束索引,并只返回该范围内的结果。例如: ```java List<TreeNode> paginate(List<TreeNode> result, int page, int pageSize) { int startIndex = (page - 1) * pageSize; int endIndex = Math.min(startIndex + pageSize, result.size()); return result.subList(startIndex, endIndex); } ``` 通过使用以上的模糊查询和分页方法,您可以实现树状数据模糊查询分页的Java代码。注意,在实际使用中,还应该考虑异常处理、输入验证、性能优化等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值