根据list集合类的某个字段组合数据

这篇博客介绍如何利用Java对List集合中的对象,依据某个特定字段进行数据的组合与分组,以实现更高效的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 代码
  public void bt3(View view) {
        Map<String, Bean> map = new HashMap<>();//分类 如下 应分三个集合
        map.put("1", new Bean("1", "2", "3", "4"));
        map.put("2", new Bean("1", "2", "3", "5"));
        map.put("3", new Bean("1", "2", "4", "6"));
        map.put("4", new Bean("1", "3", "7", "9"));
        map.put("5", new Bean("2", "2", "3", "4"));
        map.put("6", new Bean("2", "2", "7", "9"));
        map.put("7", new Bean("2", "3", "3", "8"));
        map.put("8", new Bean("3", "3", "3", "8"));
        LogUtils.E(map.toString());
        //把map转换成list
        List<Bean> beans = new ArrayList<>();
        for (Bean b : map.values()) {
            beans.add(b);
        }
        //string字段相同存入map
        Map<String, String> mapstring = new HashMap<>();
        for (Bean b : beans) {
            mapstring.put(b.getString(), b.getString());
        }
        LogUtils.E(mapstring.toString());
        //组合分类数据
        List<List<Bean>> listList = new ArrayList<>();
        for (Map.Entry<String, String> entry : mapstring.entrySet()) {
            List<Bean> lisdan=new ArrayList<>();
            for (Bean b : map.values()) {
                if (entry.getKey().equals(b.getString())) {
                    lisdan.add(b);
                }
            }
            LogUtils.E(lisdan.toString());
            listList.add(lisdan);
        }
        LogUtils.E(listList.toString());
}
/*
*类
**/
  class Bean {
        private String string;
        private String title;
        private String content;
        private String icon;
//get,set,构造器
}
  • 分类结果   
2020-01-14 11:17:12.217 12701-12701/com.ms.liu E/项目: [ main: RxOrBusActivity.java:95 bt3 ] - [Bean{string='1', title='2', content='3', icon='4'}, Bean{string='1', title='2', content='3', icon='5'}, Bean{string='1', title='2', content='4', icon='6'}, Bean{string='1', title='3', content='7', icon='9'}]
2020-01-14 11:17:12.218 12701-12701/com.ms.liu E/项目: [ main: RxOrBusActivity.java:95 bt3 ] - [Bean{string='2', title='2', content='3', icon='4'}, Bean{string='2', title='2', content='7', icon='9'}, Bean{string='2', title='3', content='3', icon='8'}]
2020-01-14 11:17:12.219 12701-12701/com.ms.liu E/项目: [ main: RxOrBusActivity.java:95 bt3 ] - [Bean{string='3', title='3', content='3', icon='8'}]
2020-01-14 11:17:12.221 12701-12701/com.ms.liu E/项目: [ main: RxOrBusActivity.java:98 bt3 ] - [[Bean{string='1', title='2', content='3', icon='4'}, Bean{string='1', title='2', content='3', icon='5'}, Bean{string='1', title='2', content='4', icon='6'}, Bean{string='1', title='3', content='7', icon='9'}], [Bean{string='2', title='2', content='3', icon='4'}, Bean{string='2', title='2', content='7', icon='9'}, Bean{string='2', title='3', content='3', icon='8'}], [Bean{string='3', title='3', content='3', icon='8'}]]

 

在安卓开发中,`List`集合是一种常用的数据结构,用于存储和管理一组数据。如果你需要修改`List`集合中某一项数据的某个字段数据,可以按照以下步骤进行: 1. **获取集合中的数据项**:首先,通过索引获取你想要修改的项。 2. **修改字段数据**:在获取到的数据项中,修改你需要更新的字段。 3. **更新集合**:将修改后的数据项重新设置回集合中。 下面是一个具体的示例,假设我们有一个`User`类,包含`id`、`name`和`age`字段: ```java import java.util.ArrayList; import java.util.List; class User { int id; String name; int age; User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } } public class Main { public static void main(String[] args) { // 初始化List集合 List<User> userList = new ArrayList<>(); userList.add(new User(1, "Alice", 25)); userList.add(new User(2, "Bob", 30)); userList.add(new User(3, "Charlie", 35)); // 修改第二项的年龄 if (userList.size() > 1) { User user = userList.get(1); // 获取第二项 user.age = 31; // 修改年龄字段 userList.set(1, user); // 更新集合 } // 打印修改后的List集合 for (User user : userList) { System.out.println("ID: " + user.id + ", Name: " + user.name + ", Age: " + user.age); } } } ``` 在这个示例中,我们首先初始化了一个包含多个`User`对象的`List`集合。然后,我们通过索引`1`获取第二项`User`对象,并修改其`age`字段。最后,我们将修改后的`User`对象重新设置回`List`集合中。 通过这种方式,你可以轻松地修改`List`集合中任何一项数据的任何字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值