package com.test;

import java.util.ArrayList;
import java.util.List; public class FileTest {
public static void main(String[] args) {
List<FileBean> beans=new ArrayList<FileBean>();
FileBean bean1=new FileBean();
bean1.setDirectory("path1");
bean1.setSize(20);
beans.add(bean1);
FileBean bean2=new FileBean();
bean2.setDirectory("path1");
bean2.setSize(30);
beans.add(bean2);
FileBean bean3=new FileBean();
bean3.setDirectory("path1");
bean3.setSize(40);
beans.add(bean3);
FileBean bean4=new FileBean();
bean4.setDirectory("path2");
bean4.setSize(50);
beans.add(bean4);
FileBean bean5=new FileBean();
bean5.setDirectory("path2");
bean5.setSize(60);
beans.add(bean5);
FileBean bean6=new FileBean();
bean6.setDirectory("path3");
bean6.setSize(70);
beans.add(bean6);
FileBean bean7=new FileBean();
bean7.setDirectory("path3");
bean7.setSize(80);
beans.add(bean7);
FileBean bean8=new FileBean();
bean8.setDirectory("path3");
bean8.setSize(90);
beans.add(bean8);
List<FileBean> result = transferFilebean(beans);
System.out.println(result.size());
for(int i = 0; i< result.size();i++){
FileBean bean = result.get(i);
System.out.println(bean.getDirectory() + ";" + bean.getSize()); }
} public static List<FileBean> transferFilebean(List<FileBean> beans){
List<FileBean> result = new ArrayList<FileBean>(); if(beans == null){
return result;
}
for(int i = 0; i< beans.size();i++){
FileBean bean = beans.get(i);
if(!result.contains(bean)){
for(int j = i+1; j< beans.size();j++){
FileBean bean2 = beans.get(j);
if(bean.equals(bean2)){
bean.setSize(bean.getSize()+bean2.getSize());
}
}
result.add(bean);
}
}
return result;
} } class FileBean {
private String directory;
private long size;
private int dirNum;
public String getDirectory() {
return directory;
}
public void setDirectory(String directory) {
this.directory = directory;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
} public int getDirNum() {
return dirNum;
}
public void setDirNum(int dirNum) {
this.dirNum = dirNum;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((directory == null) ? 0 : directory.hashCode());
result = prime * result + (int) (size ^ (size >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
FileBean other = (FileBean) obj;
if (directory == null) {
if (other.directory != null)
return false;
} else if (!directory.equals(other.directory))
return false;
return true;
} }

Java List根据对象的某个属性合并list的更多相关文章

  1. Java反射获取对象VO的属性值(通过Getter方法)

    有时候,需要动态获取对象的属性值. 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定.比如,这次User,下次可能是Company. e.g. 这次我需要做一个 ...

  2. java list按照 对象 指定多个字段属性进行排序

    ListUtils.Java---功能类 package PjectUtils; import java.lang.reflect.Field; import java.text.NumberForm ...

  3. java工具类之按对象中某属性排序

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

  4. Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别

    Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 ​ 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...

  5. 运行时给java对象动态的属性赋值

    运行时给java对象动态的属性赋值 如何给java对象动态的属性赋值(也就是在代码执行的时候才决定给哪个属性赋值)         1.自定义一个工具类ReflectHelper,代码如下所示: pa ...

  6. 组件 computed 与 vuex 中 getters 的使用,及 mapGetters 的使用,对象上追加属性,合并对象

    vue 是响应式的数据,这一点相当的方便我们的操作,但有些错误的操作方法会 vue 的响应无效 除此之外我们还要了解 vue.set() 和 Object.assgin() 的使用 vue.set() ...

  7. JAVA中JavaBean对象之间属性拷贝的方法

    JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,对于这种情况,可以采用以下几个简便方法处理. 下面对这 ...

  8. 【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更

    java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; imp ...

  9. 将java中Map对象转为有相同属性的类对象(json作为中间转换)

    java中Map对象转为有相同属性的类对象(json作为中间转换) 准备好json转换工具类 public class JsonUtil { private static ObjectMapper o ...

随机推荐

  1. angular4 数据绑定

    HTML属性绑定 1.基本Html属性绑定 <td [attr.colspan]="tableColspan">something</td> 2.css类绑 ...

  2. idea下创建maven聚合(子父级)项目,多模块项目

    IDEA下Maven多模块项目介绍和搭建 idea 创建maven聚合项目简洁教程(手把手入门,通俗易懂) 本人使用的是: intelj idea 创建聚合项目(典型web项目,包括子项目util.d ...

  3. JavaScript- BOM, DOM

    BOM Browser Object Model 浏览器对象模型, 提供与浏览器窗口进行交互的方法 它使 JavaScript 有能力与浏览器进行“对话”. BOM 最主要的对象就是 window 对 ...

  4. shell实战之日志备份

    util.sh #!/bin/bash - # Read config # kay # Version: 1.0 # // # configuration file path config=${log ...

  5. Linux硬盘性能测试工具 - FIO

    1.安装:方法一:直接用指令yum -y install fio方法二:如果方法一不可行则,在官网http://freshmeat.net/projects/fio/下载fio的安装包.安装方法很简单 ...

  6. 爬虫案例之Pubmed数据库下载

    代码 # encoding=utf-8 import os, time, re import urllib.request import urllib.parse import ssl ssl._cr ...

  7. jQuery使用(十一):jQuery实例遍历与索引

    each() children() index() 一.jQuery实例遍历方法each() jQuery实例上的each()方法规定要运行的函数,并且给函数传入两个参数:index,element. ...

  8. C# GetHashCode在x64与x86版本下不一样

    最好指定一下目标平台

  9. Beamer 中的页面链接

    \documentclass[]{beamer} \usetheme{Madrid} \usenavigationsymbolstemplate{} \title{Main Title} \autho ...

  10. [再寄小读者之数学篇](2014-05-28 Ladyzhenskaya 不等式)

    $$\bex f\in C_c^\infty(\bbR^2)\ra \sen{f}_{L^4}\leq \sqrt{2} \sen{f}_{L^2}^{1/2} \sen{\p_1f}_{L^2}^{ ...