美文网首页
List集合操作

List集合操作

作者: 木讷山人_a986 | 来源:发表于2018-03-26 23:48 被阅读0次

一.将List集合按照指定size分为若干小list

//基本实现
public static void partition(List<Long> list){
        int size = 3;
        List<List<Long>> listArr = new ArrayList<>();
        int arrSize = list.size() % size == 0? list.size()/size : list.size()/size + 1;
        for (int i = 0; i < arrSize; i++) {
            List<Long> sub = new ArrayList<>();
            for (int j = i * size; j <= size * (i + 1); j++) {
                if (j <= list.size() -1) {
                    sub.add(list.get(i));
                }
            }
            listArr.add(sub);
        }
    }
    //java8
    public static void givenList(){
        List<Integer> intList = Lists.newArrayList(1,2,3,4,5,6,7,8,9);
        Map<Integer, List<Integer>> groups = intList.stream().collect(Collectors.groupingBy(s -> (s - 1)/3));
        List<List<Integer>> subSets = new ArrayList<>(groups.values());
    }
//guava实现
public static void partition2(List<Long> list){
    int size = 16;
    List<List<Long>> subSets = Lists.partition(list, size);
}

二、 实现java 中 list集合中有几十万条数据,每100条为一组取出

/**
     * 实现java中 List集合中有几十万数据,每100条为一组取出
     * @param list
     * @return 每一个key中有100条数据的List
     */
    public Map<String, List> groupList(List list){
        int listSize = list.size();
        int toIndex = 100;
        Map<String, List> map = new HashMap<>(5000);
        int keyToken = 0;
        for (int i = 0; i < list.size(); i++) {
            /**作为toIndex最后没有100条数据则剩余几条newList中就装几条**/
            if (i+100 > listSize){
                toIndex = listSize - i;
            }
            List newList = list.subList(i, i + toIndex);
            map.put("keyName"+keyToken, newList);
            keyToken++;
        }
        return map;
    } 

三、List集合取出某一属性

package com.thai.order;

import org.assertj.core.util.Lists;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @author chenmuchao
 * @date 2018-04-19 10:06
 */
public class Order {

    private int id;

    private String name;

    public Order(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public void convert(){

        List<Order> lists = Lists.newArrayList();
        Order order = new Order(1, "订单1");
        lists.add(order);
        Order order1 = new Order(2, "订单2");
        lists.add(order1);
        Order order2 = new Order(2, "订单3");
        lists.add(order2);

        List ids = lists.stream().map(Order::getId).collect(Collectors.toList());
        System.out.println("ids:" + ids);

        List names = lists.stream().map(Order :: getName).collect(Collectors.toList());
        System.out.println("names:" + names);
    }
}

四、根据条件在List中筛选出符合条件的对象

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
    
    public static void main(String[] args) throws Exception {
        Map<Integer,List<People>> map=new HashMap<Integer,List<People>>();
        People p1=new People(1,"2");
        addPersonToMap(map,p1);
        People p2=new People(3,"4");
        addPersonToMap(map,p2);
        People p3=new People(1,"2");
        addPersonToMap(map,p3);
        System.out.println(map.get(1));
    }
    private static boolean addPersonToMap(Map<Integer,List<People>> map,People p1){
        boolean flag;
        int key=p1.getAge();
        if(map.containsKey(key)){
            List<People> value=map.get(1);
            value.add(p1);
            map.put(key, value);
            flag=true;
        }else{
            List<People> value=new ArrayList<People>();
            value.add(p1);
            map.put(key, value);
            flag=false;
        }
        return flag;
    }
}
class People{
    int age;
    String name;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public People() {
        super();
    }
    public People(int age, String name) {
        super();
        this.age = age;
        this.name = name;
    }
    
}

相关文章

  • Python学习笔记(四)

    List# List 集合操作 List method that modify the list: List me...

  • 8_List 系列集合

    List 集合继承了Collection集合的全部功能;、 同时由于List集合多了索引,所以多了很多按照索引操作...

  • List集合操作

    一.将List集合按照指定size分为若干小list 二、 实现java 中 list集合中有几十万条数据,每10...

  • Dart之集合使用

    Dart 附带了核心集合 API ,其中包括 list ,set 和 map 类。 List 有序集合 创建 操作...

  • Python基础-day04

    list ​ for ​ 函数 for ​ for 变量 in 集合: ​ 重复执行操作 ...

  • Redis入门

    客户端连接 键(Key)操作 字符串(String)操作 列表(List)操作 集合(Set)操作 有序集合(So...

  • 常用代码集

    一、List操作 1.1 List集合去重 1.2 List排序 1.3 只取List集合对象的某一个字段 1.4...

  • ArrayList和LinkedList区别

    1、ArrayList是数组实现的集合操作,而LinkedList是链表实现的集合操作。2、使用List集合的ge...

  • Java集合(3)--Collections工具类

    Collections工具类:用于操作Set、List、Map等集合 1、排序操作 提供了大量类方法用于对List...

  • Java集合深入理解List

    Java 集合里面最重要的List接口,准备仔细的分析一下List。 一. List接口 二. List的操作:...

网友评论

      本文标题:List集合操作

      本文链接:https://www.haomeiwen.com/subject/scgdcftx.html