精华内容
下载资源
问答
  • java List 如何进行分组

    千次阅读 2021-02-12 19:54:13
    第四步:双字段分组。1、此处依然使用了jdk1.8的新特性(转set时),也可以自己写两个for循环替代。2、实体类使用的还是Student3、设计思路就是先将要分组的两个字段分别转为set集合去重,然后借助双层for循环,尽心...

    第四步:双字段分组。

    1、此处依然使用了jdk1.8的新特性(转set时),也可以自己写两个for循环替代。

    2、实体类使用的还是Student

    3、设计思路就是先将要分组的两个字段分别转为set集合去重,然后借助双层for循环,尽心分组。具体实现代码如下所示:

    package com.example.ttdc;

    import org.springframework.util.StringUtils;

    import java.util.*;

    import java.util.stream.Collectors;

    public class Test2 {

    public static void main(String[] args) {

    List list = new ArrayList();

    Student student1 = new Student("李四1", "女", "一班");

    Student student2 = new Student("李四2", "女", "一班");

    Student student3 = new Student("李四3", "女", "一班");

    Student student4 = new Student("李四4", "男", "一班");

    Student student5 = new Student("李四5", "男", "一班");

    Student student6 = new Student("李四6", "男", "二班");

    Student student7 = new Student("李四7", "男", "二班");

    Student student8 = new Student("李四8", "男", "二班");

    Student student9 = new Student("李四9", "男", "二班");

    list.add(student1);

    list.add(student2);

    list.add(student3);

    list.add(student4);

    list.add(student5);

    list.add(student6);

    list.add(student7);

    list.add(student8);

    list.add(student9);

    //统计不重复sex

    Set sex = new HashSet(list.stream().map(Student::getSex).collect(Collectors.toList()));

    Set grade = new HashSet(list.stream().map(Student::getGrade).collect(Collectors.toList()));

    //循环分组

    Map> map = new HashMap>();

    for (String string : sex) {

    for (String str : grade) {

    if (string == null || str == null) {

    continue;

    }

    List sl = new ArrayList();

    for (Student student : list) {

    if (string.equals(student.getSex()) && str.equals(student.getGrade())) {

    sl.add(student);

    }

    }

    map.put(string + str, sl);

    }

    }

    //查看测试结果

    for (Map.Entry> listsList1 : map.entrySet()) {

    for (Student st : listsList1.getValue()) {

    System.out.println(st.getSex() + " name:" + st.getName() + "  " + st.getGrade());

    }

    System.out.println("--------------------------");

    }

    }

    }

    展开全文
  • Java List分组及Map使用

    2021-03-18 10:47:41
    import java.util.ArrayList;import java.util....import java.util.List;import java.util.Map;public class Test {public static void main(String[] args) {List list = new ArrayList();list.add("1");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) {

    List list = new ArrayList();

    list.add("1");

    list.add("2");

    list.add("3");

    list.add("2");

    list.add("2");

    list.add("1");

    list.add("3");

    Map> map = new HashMap>();

    for(String str : list){

    if(map.containsKey(str)){

    List strList = map.get(str);

    strList.add(str);

    }else {

    List tempList = new ArrayList();

    tempList.add(str);

    map.put(str, tempList);

    }

    }

    for(Map.Entry> mapEntry : map.entrySet()){

    //String str = mapEntry.getKey();

    //List strList = mapEntry.getValue();

    System.out.print("key:"+mapEntry.getKey()+" ");

    System.out.println("value:"+mapEntry.getValue()+" ");

    }

    Map map2 = new HashMap();

    map2.put("1", "2");

    map2.put("2", "4");

    map2.put("3", "6");

    for(Map.Entry m : map2.entrySet()){

    System.out.println(m.getKey()+"--"+m.getValue());

    }

    }

    }

    运行结果:

    key:3 value:[3, 3]  key:2 value:[2, 2, 2]  key:1 value:[1, 1]  3--6 2--4 1--2

    展开全文
  • 1. 跟据某个属性分组OfficeId:Map> collect = list.stream().collect(Collectors.groupingBy...2. 根据某个属性分组OfficeId,汇总某个属性Money:Map collect = list.stream().collect(Collectors.groupingBy...

    1. 跟据某个属性分组OfficeId:

    Map> collect = list.stream().collect(Collectors.groupingBy(IncomeSumPojo::getOfficeId));

    2. 根据某个属性分组OfficeId,汇总某个属性Money:

    Map collect = list.stream().collect(Collectors.groupingBy(IncomeSumPojo::getOfficeId,Collectors.summingDouble(IncomeSumPojo::getMoney)));

    3. 根据某个属性添加条件过滤数据:

    list = list.stream().filter(u -> !u.getAmount().equals("0.00")).collect(Collectors.toList());

    4. 判断一组对象里面有没有属性值是某个值:

    List

    boolean add = menuList.stream().anyMatch(m -> "plan:ctPlan:add".equals(m.getPermission()));

    5. 取出一组对象的某个属性组成一个新集合:

    List tableNames=list.stream().map(User::getMessage).collect(Collectors.toList());

    6. list去重复:

    list = list.stream().distinct().collect(Collectors.toList());

    展开全文
  • java list分组

    2021-03-17 19:21:45
    关于java list分组网上有很多的代码,在此我来用guava做一个分组的例子,代码如下:package com.netease.ad.omp.common.utils;import com.google.common.base.Function;import com.google.common.collect.Multimap;...

    关于java list分组网上有很多的代码,在此我来用guava做一个分组的例子,代码如下:

    package com.netease.ad.omp.common.utils;

    import com.google.common.base.Function;

    import com.google.common.collect.Multimap;

    import com.google.common.collect.Multimaps;

    import java.util.Iterator;

    import java.util.LinkedList;

    import java.util.List;

    /**

    * Created with IntelliJ IDEA

    */

    public class GroupByUtils {

    public static List> groupBy(final List list, final String groupBy){

    List> result = new LinkedList<>();

    Multimap grouped = Multimaps.index(list,

    new Function() {

    @Override

    public String apply(T item) {

    return groupBy;

    }

    });

    Iterator keyIterator = grouped.asMap().keySet().iterator();

    while (keyIterator.hasNext()) {

    String key = keyIterator.next();

    List groupedDataRows = (List) grouped.get(key);

    result.add(groupedDataRows);

    }

    return result;

    }

    }

    展开全文
  • java 1.8对list数据分组

    2021-07-08 09:14:58
    1.根据省和市组合一起分组 List<CrawAreaEntity> allCrawAreaEntity = crawMapper.findAllCrawAreaEntity(); Map<String, List<CrawAreaEntity>> collect = allCrawAreaEntity.stream().collect...
  • 如何根据List中的对象属性来实现分组,比如:按照客户的年龄段将客户分成多个组,参考以下示例代码://定义客户Customer类static class Customer {int age;int gender;String name;public Customer(String name, int...
  • List 分组求和 并返回 List 如下示例 : 计算 同组用户的年龄和 List<User> users = new ArrayList<>(); // ... add user to users Map<String, User> groupByModelId = users.stream() ...
  • javalist分组存入map

    2021-10-12 09:00:43
    list根据姓名分组存入map中 //定义存放list根据姓名分组后的map Map<String, List<PersonInfo>> personInfoMap = new HashMap<>(); //从数据库获取所有list集合 List<PersonInfo>...
  • 对象列表进行较复杂的排序操作:首先要列表根据对象属性A进行分组,然后要对分组后的每组内的对象属性B(每组的属性B值相同,可能为空)组进行排序,然后每组组内要属性C进行排序 这里的对象为People类属性为...
  • JAVA8 List 分组按条件筛选

    千次阅读 2021-02-12 11:53:03
    import com.alibaba.fastjson.JSON;import ...import java.util.*;import java.util.stream.Collectors;public class ListGroupFindFirstTest3 {public static void...
  • jdk8(java8),list 集合 分组,stream 流处理,groupingBy 使用 两种分组方式的代码 参考 Stream流使用groupingBy+mapping实现对分组之后的对象集合转化为对象的某个属性的集合 测试代码 import java.util....
  • importjava.util.ArrayList;importjava.util.List;...public classCollectionGroupUtilTest {/*** 大于分组数量的情况*/@Testpublic voidtest() {List allList = new ArrayList();for (int i = 1; i <= ...
  • 话不多说,直接上代码,请朋友们自行测试~public class Gamer47 {public static void main(String[] args) {//将List变成一个mapmergeListmapToOnemap(null);//将两个List合并成一个List,“name”为map的...
  • importjava.util.ArrayList;importjava.util.HashMap;importjava.util.HashSet;...importjava.util.List;importjava.util.Map;importjava.util.Set;public classListSort {/*** 按照List>里面m...
  • 一.对象类@Data@AllArgsConstructorpublic class User {private Integer age;...普通写法private List users =Arrays.asList(new User(20,"张三"),new User(18,"李四"),new User(20,"王五"));@Testpublic void...
  • 有时候集合类型json数据,需要进一步按照类型进行分组加工,下面提供两种分组方式。二、HashMap遍历分组分组代码:{............//定义分组集合Mapprivate Map> groupMap = new HashMap<>();//遍历原始数据...
  • 写代码时如果不想通过SQL查询做分组统计,通过Stream流也是可以做到的,现用简单demo记录一下。 先创建一个学生类 import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public ...
  • java8对list按条件分组

    2021-04-17 07:51:11
    import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Test1 { @Test public void test2() { List appleList = new ArrayList(); appleList.add(new UserInfo("2", ...
  • java List分组

    2021-03-05 21:18:44
    packagetest;importjavaBean.CustomerVo;importservice.ListSortUtil;importjava.text.ParseException;importjava.text.SimpleDateFormat;.../*** 测试集合分组算法**@author清茶* @create 2017-10-26 10:40*/...
  • Java8新特性,List分组排序 1.分组(多字段分组) Map<String,List<Fruit>> fruitMap = fruitList.stream().collect(Collectors.groupingBy(Fruit::getName)); Map<String, List<CalbPrOutputSum&...
  • @Slf4j public class Demo24 { public static void main(String[] args) { ... list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { list.add("第" + i + "个"); } int nThreads = 5;
  • 利用java8新特性,可以用简洁高效的代码来实现一些数据处理。定义1个Apple对象:public class Apple {private Integer id;private String name;private BigDecimal money;private Integer num;public Apple(Integer ...
  • Java stream List 求和、分组操作

    千次阅读 2021-03-17 13:51:46
    Java stream List 求和、分组操作前言项目中经常会使用Stream操作一些集合数据,今天记录一下我经常使用的Stream操作求和操作publicstaticvoidmain(String[]args){Listusers=generateUserList();intreduce=users....
  • 在一些应用中,需要将List中的对象按某种情况分组或者排序处理。做个小结如下:1.如一个List中存放了ProductDoing对象,productDoing对象有rawTypeId现在要求将rawTypeId分组处理。先用Map找出list中所有的分组://...
  • public void buildCalcVehcileD(List<Vehicle> vehicleListByTypeClass, LinkedHashSet<String> brands, List<SelectCalculatorVehicleDTO> calcVehicleDs){ //使用set去重 Map<String, ...
  • try {List timelist = DateUtils.getDateListBySETime("2015-08-01", "2015-11-30");if(timelist!=null&&timelist.size()>0){int SIZE = 10;int page = (timelist.size() + SIZE - 1)/SIZE;List newtimel...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,554
精华内容 29,821
关键字:

java对list分组

java 订阅