62,615
社区成员
发帖
与我相关
我的任务
分享
public class RtocProcessEntity {
private String wellId;
private Date dailyDate;
private BigDecimal endDepth;
public String getWellId() {
return wellId;
}
public void setWellId(String wellId) {
this.wellId = wellId;
}
public Date getDailyDate() {
return dailyDate;
}
public void setDailyDate(Date dailyDate) {
this.dailyDate = dailyDate;
}
public BigDecimal getEndDepth() {
return endDepth;
}
public void setEndDepth(BigDecimal endDepth) {
this.endDepth = endDepth;
}
@Override
public String toString() {
return "RtocProcessEntity [wellId=" + wellId + ", dailyDate=" + dailyDate + ", endDepth=" + endDepth + "]";
}
}
[
RtocProcessEntity [wellId=1, dailyDate=null, endDepth=100],
RtocProcessEntity [wellId=1, dailyDate=null, endDepth=110],
RtocProcessEntity [wellId=1, dailyDate=null, endDepth=150],
RtocProcessEntity [wellId=2, dailyDate=null, endDepth=90],
RtocProcessEntity [wellId=2, dailyDate=null, endDepth=110],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110]
]
RtocProcessEntity [wellId=1, dailyDate=null, endDepth=100],
RtocProcessEntity [wellId=1, dailyDate=null, endDepth=110],
RtocProcessEntity [wellId=1, dailyDate=null, endDepth=150],
RtocProcessEntity [wellId=2, dailyDate=null, endDepth=90],
RtocProcessEntity [wellId=2, dailyDate=null, endDepth=110],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90],
RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110]
public class T {
public static void main(String[] args) {
//测试数据
List<RtocProcessEntity> rotcProcessList = new ArrayList<RtocProcessEntity>();
RtocProcessEntity demo1 = new RtocProcessEntity();
demo1.setWellId("1");
demo1.setEndDepth(new BigDecimal(100));
RtocProcessEntity demo2 = new RtocProcessEntity();
demo2.setWellId("1");
demo2.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo3 = new RtocProcessEntity();
demo3.setWellId("1");
demo3.setEndDepth(new BigDecimal(150));
RtocProcessEntity demo4 = new RtocProcessEntity();
demo4.setWellId("2");
demo4.setEndDepth(new BigDecimal(90));
RtocProcessEntity demo5 = new RtocProcessEntity();
demo5.setWellId("2");
demo5.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo6 = new RtocProcessEntity();
demo6.setWellId("3");
demo6.setEndDepth(new BigDecimal(90));
RtocProcessEntity demo7 = new RtocProcessEntity();
demo7.setWellId("3");
demo7.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo8 = new RtocProcessEntity();
demo8.setWellId("3");
demo8.setEndDepth(new BigDecimal(90));
RtocProcessEntity demo9 = new RtocProcessEntity();
demo9.setWellId("3");
demo9.setEndDepth(new BigDecimal(110));
rotcProcessList.add(demo1);
rotcProcessList.add(demo2);
rotcProcessList.add(demo3);
rotcProcessList.add(demo4);
rotcProcessList.add(demo5);
rotcProcessList.add(demo6);
rotcProcessList.add(demo7);
rotcProcessList.add(demo8);
rotcProcessList.add(demo9);
T demo = new T();
Map<String, List<RtocProcessEntity>> resultMap = demo.calcData(rotcProcessList);
}
public Map<String,List<RtocProcessEntity>> calcData(List<RtocProcessEntity> rotcProcessList) {
Map<String,List<RtocProcessEntity>> resultMap = new HashMap<String,List<RtocProcessEntity>>();
List<RtocProcessEntity> maxList = new ArrayList<RtocProcessEntity>();
List<RtocProcessEntity> minList = new ArrayList<RtocProcessEntity>();
List<RtocProcessEntity> avgList = new ArrayList<RtocProcessEntity>();
//计算的代码
System.out.println(rotcProcessList.toString());
resultMap.put("maxList", maxList);
resultMap.put("minList", minList);
resultMap.put("avgList", avgList);
return resultMap;
}
}
public Map<String,List<RtocProcessEntity>> calcData(List<RtocProcessEntity> rotcProcessList) {
Map<String,List<RtocProcessEntity>> tempMap = new HashMap<String,List<RtocProcessEntity>>();
Map<String,List<RtocProcessEntity>> resultMap = new HashMap<String,List<RtocProcessEntity>>();
for(RtocProcessEntity rpe :rotcProcessList ){
if(tempMap.get(rpe.getWellId())==null){
tempMap.put(rpe.getWellId(), new ArrayList<RtocProcessEntity>());
}
tempMap.get(rpe.getWellId()).add(rpe);
}
int index = 0;
for(Entry<String, List<RtocProcessEntity>> entry :tempMap.entrySet() ){
if(entry.getValue().size()>index){
index = entry.getValue().size();
}
}
List<RtocProcessEntity> maxList = new ArrayList<RtocProcessEntity>(index);
List<RtocProcessEntity> minList = new ArrayList<RtocProcessEntity>(index);
List<RtocProcessEntity> avgList = new ArrayList<RtocProcessEntity>(index);
for(int i =0;i<index;i++){
List<RtocProcessEntity> indexList = new ArrayList<RtocProcessEntity>();
for(Entry<String, List<RtocProcessEntity>> entry :tempMap.entrySet() ){
RtocProcessEntity obj = null;
try{
obj = entry.getValue().get(i);
}catch(Exception e){
}finally {
if(obj!=null){
indexList.add(obj);
}
}
}
maxList.add(max(indexList));
minList.add(min(indexList));
}
// System.out.println("最大列表:");
// System.out.println(Arrays.toString(maxList.toArray()));
// System.out.println("最小列表:");
// System.out.println(Arrays.toString(minList.toArray()));
resultMap.put("maxList", maxList);
resultMap.put("minList", minList);
resultMap.put("avgList", avgList);
return resultMap;
}
/**
* 平均數
* @param data
* @return
*/
public double average(List<RtocProcessEntity> data){
BigDecimal sum = new BigDecimal(0);
for(RtocProcessEntity rpe :data){
sum.add(rpe.getEndDepth());
}
return sum.doubleValue()/data.size();
}
public RtocProcessEntity max(List<RtocProcessEntity> data){
RtocProcessEntity result = new RtocProcessEntity();
for(RtocProcessEntity rpe :data){
if(rpe.getEndDepth().compareTo(result.getEndDepth()==null?new BigDecimal(0):result.getEndDepth())>0){
result = rpe;
}
}
return result;
}
public RtocProcessEntity min(List<RtocProcessEntity> data) {
if(data.size()<=0){
return null;
}
RtocProcessEntity result = data.get(0);
for(RtocProcessEntity rpe :data){
if(rpe.getEndDepth().compareTo(result.getEndDepth()==null?new BigDecimal(0):result.getEndDepth())<0){
result = rpe;
}
}
return result;
}
测试数据和main方法:
public static void main(String[] args) {
T demo = new T();
List<RtocProcessEntity> rotcProcessList = new ArrayList<RtocProcessEntity>();
RtocProcessEntity demo1 = new RtocProcessEntity();
demo1.setWellId("1");
demo1.setEndDepth(new BigDecimal(100));
RtocProcessEntity demo2 = new RtocProcessEntity();
demo2.setWellId("1");
demo2.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo3 = new RtocProcessEntity();
demo3.setWellId("1");
demo3.setEndDepth(new BigDecimal(150));
RtocProcessEntity demo4 = new RtocProcessEntity();
demo4.setWellId("2");
demo4.setEndDepth(new BigDecimal(90));
RtocProcessEntity demo5 = new RtocProcessEntity();
demo5.setWellId("2");
demo5.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo6 = new RtocProcessEntity();
demo6.setWellId("3");
demo6.setEndDepth(new BigDecimal(90));
RtocProcessEntity demo7 = new RtocProcessEntity();
demo7.setWellId("3");
demo7.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo8 = new RtocProcessEntity();
demo8.setWellId("3");
demo8.setEndDepth(new BigDecimal(90));
RtocProcessEntity demo9 = new RtocProcessEntity();
demo9.setWellId("3");
demo9.setEndDepth(new BigDecimal(110));
RtocProcessEntity demo10 = new RtocProcessEntity();
demo10.setWellId("5");
demo10.setEndDepth(new BigDecimal(60));
RtocProcessEntity demo11 = new RtocProcessEntity();
demo11.setWellId("5");
demo11.setEndDepth(new BigDecimal(80));
RtocProcessEntity demo12 = new RtocProcessEntity();
demo12.setWellId("5");
demo12.setEndDepth(new BigDecimal(130));
RtocProcessEntity demo13 = new RtocProcessEntity();
demo13.setWellId("5");
demo13.setEndDepth(new BigDecimal(131));
RtocProcessEntity demo14 = new RtocProcessEntity();
demo14.setWellId("5");
demo14.setEndDepth(new BigDecimal(140));
rotcProcessList.add(demo1);
rotcProcessList.add(demo2);
rotcProcessList.add(demo3);
rotcProcessList.add(demo4);
rotcProcessList.add(demo5);
rotcProcessList.add(demo6);
rotcProcessList.add(demo7);
rotcProcessList.add(demo8);
rotcProcessList.add(demo9);
rotcProcessList.add(demo10);
rotcProcessList.add(demo11);
rotcProcessList.add(demo12);
rotcProcessList.add(demo13);
rotcProcessList.add(demo14);
System.out.println(Arrays.toString(rotcProcessList.toArray()));
Map<String, List<RtocProcessEntity>> resultMap = demo.calcData(rotcProcessList);
System.out.println(resultMap.toString());
}
输出结果:
[RtocProcessEntity [wellId=1, dailyDate=null, endDepth=100], RtocProcessEntity [wellId=1, dailyDate=null, endDepth=110], RtocProcessEntity [wellId=1, dailyDate=null, endDepth=150], RtocProcessEntity [wellId=2, dailyDate=null, endDepth=90], RtocProcessEntity [wellId=2, dailyDate=null, endDepth=110], RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90], RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110], RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90], RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=60], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=80], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=130], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=131], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=140]]
{minList=[RtocProcessEntity [wellId=5, dailyDate=null, endDepth=60], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=80], RtocProcessEntity [wellId=3, dailyDate=null, endDepth=90], RtocProcessEntity [wellId=3, dailyDate=null, endDepth=110], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=140]], avgList=[], maxList=[RtocProcessEntity [wellId=1, dailyDate=null, endDepth=100], RtocProcessEntity [wellId=1, dailyDate=null, endDepth=110], RtocProcessEntity [wellId=1, dailyDate=null, endDepth=150], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=131], RtocProcessEntity [wellId=5, dailyDate=null, endDepth=140]]}