//下面代码为两组分类示例
private static void test13() {
List<Object[]> mstamps = new ArrayList<>();
Object[] o1 = {15,6,4};
Object[] o2 = {15,6,4};
Object[] o3 = {15,6,4};
Object[] o4 = {21,7,4};
Object[] o5 = {21,7,4};
Object[] o6 = {21,7,4};
Object[] o7 = {23,8,5};
Object[] o8 = {23,9,5};
Object[] o9 = {23,0,5};
mstamps.add(o1);mstamps.add(o2);mstamps.add(o3);mstamps.add(o4);mstamps.add(o5);mstamps.add(o6);
mstamps.add(o7);mstamps.add(o8);mstamps.add(o9);
boolean hasMemStamp = false;
// Map<Long, List<Long>> stampsList = null;
Map<Long, Map<Long,List<Long>>> stampsList = null;
if (null != mstamps && mstamps.size() > 0) {
hasMemStamp = true;
stampsList = new HashMap<>();
Map<Long,List<Long>> map = new LinkedHashMap<>();
List<Long> sList = new ArrayList<>();
Long tempSCId = Long.valueOf(mstamps.get(0)[2] + "");
Long tempMSCId = Long.valueOf(mstamps.get(0)[0] + "");
for (int i = 0; i < mstamps.size(); i++) {
Object[] o = mstamps.get(i);
if (tempSCId.equals(Long.valueOf(o[2] + ""))) {
if (tempMSCId.equals(Long.valueOf(o[0] + ""))) {
sList.add(Long.valueOf(o[1] + ""));
} else {
map.put(tempMSCId, sList);
tempMSCId = Long.valueOf(o[0] + "");
sList = new ArrayList<>();
sList.add(Long.valueOf(o[1] + ""));
}
} else {
map.put(tempMSCId, sList);
stampsList.put(tempSCId, map);
tempMSCId = Long.valueOf(o[0] + "");
tempSCId = Long.valueOf(o[2] + "");
map = new LinkedHashMap<>();
sList = new ArrayList<>();
sList.add(Long.valueOf(o[1] + ""));
map.put(tempMSCId, sList);
}
}
stampsList.put(tempSCId, map);
}
System.out.println(stampsList);
if (hasMemStamp && null != stampsList) {
List<StampcardVo> sv = new ArrayList<>();
Map<Long, List<Long>> map = stampsList.get(4l);
Set<Entry<Long, List<Long>>> entrySet = map.entrySet();
for (Entry<Long, List<Long>> entry : entrySet) {
StampcardVo scv = new StampcardVo();
scv.setStampcardid(entry.getKey());
scv.setCollectedstamps(entry.getValue());
sv.add(scv);
}
//s.getStampcards().addAll(sv);
System.out.println(sv);
}
}
stampcardvo
public class StampcardVo extends BaseObject {
private static final long serialVersionUID = -514301494989338883L;
private Long stampcardid;
private List<Long> collectedstamps = new ArrayList<>();
public Long getStampcardid() {
return stampcardid;
}
public void setStampcardid(Long stampcardid) {
this.stampcardid = stampcardid;
}
public List<Long> getCollectedstamps() {
return collectedstamps;
}
public void setCollectedstamps(List<Long> collectedstamps) {
this.collectedstamps = collectedstamps;
}
}
private final static List<Object[]> doData(List<Object[]> result) {
if (null == result || result.size() < 0) {
return result;
}
List<Object[]> ret = new ArrayList<Object[]>();
sortTransation(result);
Object[] temp = result.get(0);
String firstSku = temp[4].toString();
String firstInvoiceNo = temp[2].toString();
int sum = 0;
for (Object[] t : result) {
String newSku = t[4].toString();
String newInV = t[2].toString();
if (firstSku.equals(newSku) && firstInvoiceNo.equals(newInV)) {
temp = t;
sum += (null == t[6] || "".equals(t[6].toString()) ? 0 : Integer.parseInt(t[6].toString()));
temp[6] = sum;
continue;
} else {
temp[6] = sum > 0 ? sum : (null == t[6] || "".equals(temp[6].toString()) ? 0 : Integer.parseInt(temp[6].toString()));
sum = (null == t[6] || "".equals(t[6].toString()) ? 0 : Integer.parseInt(t[6].toString()));
ret.add(temp);
firstSku = t[4].toString();
firstInvoiceNo = t[2].toString();
temp = t;
}
}
ret.add(temp);
sortDate(ret);
return ret;
}
上面代码为单组分类示例
代码执行顺序
package com.dennis.test.init;
public class Test执行顺序 {
private int abc = getABC();
static {
System.out.println("11111111111111111111");
}
private static int count1 = 3;
private static int count0 = 6;
private static Test执行顺序 tester = new Test执行顺序();//
private static int count3 = getCount3();
private int xxx = 112;
private static int count2 = 2;
{
System.out.println("3333333333333333333333333");
}
static {
System.out.println("00000000066666666666666666666666666");
}
public Test执行顺序() {
count1++;count2++;count3++;
System.out.println("4444444444444444444444444444\t" + count1 + "\t" + count2);
}
private int getABC() {
System.out.println("22222222222222222222222222222");
return 5;
}
private static int getCount3() {
System.out.println("55555555555555555555555555");
return 12;
}
private static Test执行顺序 getTester() {
System.out.println("888888888888888888888888\t" + tester.count3);
return tester;
}
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
//Test执行顺序 tester = new Test执行顺序();
System.out.println("7777777777777777777777\t" + count2);
Test执行顺序.getTester();
Class.forName("com.dennis.test.init.FinalClass");
FinalClass f = (FinalClass) Class.forName("com.dennis.test.init.FinalClass").newInstance();
f.print();
}
static {
System.out.println("666666666666666666666666");
}
}
//
11111111111111111111
22222222222222222222222222222
3333333333333333333333333
4444444444444444444444444444 4 1
55555555555555555555555555
00000000066666666666666666666666666
666666666666666666666666
7777777777777777777777 2
888888888888888888888888 12
===========ccc============26
===========dddd============
===========eeeee============6
FinalClass print method 9