美文网首页Java开发
对象列表根据对象key分组转换为字典

对象列表根据对象key分组转换为字典

作者: _浅墨_ | 来源:发表于2023-08-14 16:09 被阅读0次
方法一、常规实现方式
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        List<Customer> customerList = new ArrayList<>();
        // 添加示例数据
        customerList.add(new Customer("John", "1234567890"));
        customerList.add(new Customer("Alice", "0987654321"));
        customerList.add(new Customer("Bob", "1234567890"));
        customerList.add(new Customer("Eve", "9876543210"));

        Map<String, List<Customer>> dictionary = generateDictionary(customerList);
        System.out.println(dictionary);
    }

    public static Map<String, List<Customer>> generateDictionary(List<Customer> customerList) {
        Map<String, List<Customer>> dictionary = new HashMap<>();

        for (Customer customer : customerList) {
            String phoneNo = customer.getPhoneNo();

            if (dictionary.containsKey(phoneNo)) {
                dictionary.get(phoneNo).add(customer);
            } else {
                List<Customer> newList = new ArrayList<>();
                newList.add(customer);
                dictionary.put(phoneNo, newList);
            }
        }

        return dictionary;
    }
}

class Customer {
    private String name;
    private String phoneNo;

    public Customer(String name, String phoneNo) {
        this.name = name;
        this.phoneNo = phoneNo;
    }

    public String getPhoneNo() {
        return phoneNo;
    }

    @Override
    public String toString() {
        return name;
    }
}

在上述示例代码中,我们创建了一个 Customer 类来表示客户对象,并在 Main 类中实现了 generateDictionary() 方法来生成字典。通过示例数据,我们展示了如何使用该方法来生成具有相同 phoneNo 的客户对象列表的字典。

方法二、优雅方法

以下是使用 Java 实现您所描述问题的示例代码:

import java.util.*;
import java.util.stream.Collectors;
// 假设你有一个Customer类,每个对象都有一个phoneNo属性
class Customer {
    private String phoneNo;
    public Customer(String phoneNo) {
        this.phoneNo = phoneNo;
    }
    public String getPhoneNo() {
        return phoneNo;
    }
}

// 假设你有一个customer list,每个对象都是Customer类的实例
List<Customer> customer_list = Arrays.asList(new Customer("123"), new Customer("456"), new Customer("123"), new Customer("789"));

// 你可以使用stream()和Collectors.groupingBy()来创建一个字典,key为phoneNo,value为手机号为phoneNo的customer对象list
Map<String, List<Customer>> result = customer_list.stream().collect(Collectors.groupingBy(Customer::getPhoneNo));

// 打印结果
System.out.println(result);

相关文章

  • 分组与聚合

    分组与聚合 GroupBy对象 dataframe根据key1进行分组 data1列根据key1进行分组 分组运算...

  • Java8 lambda表达式收集汇总

    1 有一个对象列表,根据对象中某个字段对列表进行分组,分组后获取组中对象列表中某个字段最大的值: 2 有一个对象列...

  • 嵌套,反射

    嵌套 类可以做为列表的元素,字典的key,value等传入 反射 根据字符串的形式去某个对象中操作他的成员 基本用...

  • python json 模块

    json转换 json.dumps() 将字典对象转换为字符串 json.loads() 将字符串对象转换为字典 ...

  • 简单理解ORM

    ORM的理解: ORM是“对象-关系-映射”的简称, 1.根据对象的类型生成表结构 2.将对象、列表的操作,转换为...

  • UI基础控件入门2

    字典转模型对象 使用字典的坏处?手敲字符串key,key容易写错;key如果写错了,编译器不会有任何警告和报错,造...

  • Python(三)字典操作

    一: 字典 1: 字典和列表一样, 能够存储多个数据 2: 列表根据下标对元素处理, 但是字典是根据"key"键值...

  • ORM

    ORM ORM 是’对象-关系-映射‘的简称主要任务 *1根据对象的类型生成表结构 *2将对象、列表的操作,转换为...

  • 列表,字典排序

    列表嵌套字典,根据字典某一key排序python sort、sorted高级排序技巧(key的使用)Python要...

  • swift3.0 类型转换

    任意对象 anyObject转换为json对象 任意对象转换为String类型 String类型转Int类型

网友评论

    本文标题:对象列表根据对象key分组转换为字典

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