java中对list集合中的数据按照某一个属性进行分组

使用场景:项目中有个选择法律依据的地方
列表是多选的
《安全法》第一条
《安全法》第十一条
《安全法》第二十一条
选择完毕后,要求显示成
《安全法》第一条,第十一条,第二十一条

按照这个格式 修改即可

					// 数据源
					List<BeanRespGetLaw.Law> lawList = data.getParcelableArrayListExtra("model");
					// 分组后的数据源
                    List<BeanRespGetLaw.Law> laws = new ArrayList<>();
                    for (BeanRespGetLaw.Law law : lawList) {
                        boolean state = false;
                        for (BeanRespGetLaw.Law l : laws) {
                            if (l.getLaw().equals(law.getLaw())) {
                                String lawNumber = l.getLawNumber() + ", ";
                                lawNumber += law.getLawNumber();
                                l.setLawNumber(lawNumber);
                                state = true;
                            }
                        }
                        if (!state) {
                            laws.add(law);
                        }
                    }
                    String message = "";
                    for (int i = 0; i < laws.size(); i++) {
                        System.out.println(laws.get(i).getLaw() + "    " + laws.get(i).getLawNumber());
                        message += i + 1 + ":" + laws.get(i).getLaw() + " " + laws.get(i).getLawNumber() + "  ";
                    }
                    // 赋值
                    etDecision.setText(message);

你可能感兴趣的:(Android)