针对list集合的操作,按照某一字段,对另一个字段进行归类

一直以来对集合的操作都是比较频繁的
像简单的集合去重,取并集,取差集,按id取不同,我们都司空见惯了
今天这篇文章其实也很常见
例:举一个实际的情况吧,我们在选择法律法规的时候,《某某法》第一条,《某某法》第十一条

  • 《某某法》第一条
  • 《某某法》第二条
  • 《某某法》第十一条
  • 《某某某某法》第一条
  • 《某某某某法》第五十条
  • 《某某某某法》第十二条

我们在多选完毕后,我们希望是这样去显示的:《某某法》第一条,第二条,第十一条;《某某某某法》第一条,第五十条,第十二条

那我们就需要依据法律法规名称,也就是law字段对条款名称lawNumber进行分类
具体代码如下所示,自行参悟😁

					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);
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页