我有一个包含ColorType对象的数组,这些对象有salaryCode,所以我要做的是首先我想将数组作为arrayList,然后它应该基于salaryCode和具有相同salaryCode的对象应该添加到不同的arrayList中,并且该数组列表应该添加到Hashmap中。请帮我解决这个问题.. 提前谢谢
我有示例代码...
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import ColorType;
public class test {
public static void main(String[] args) {
List<ColorType> sortColorList = new ArrayList<ColorType>();
ColorType colorType = new ColorType();
colorType.setNRFColorSubFamilyCode("11");
ColorType colorType1 = new ColorType();
colorType1.setNRFColorSubFamilyCode("11");
ColorType colorType2 = new ColorType();
colorType2.setNRFColorSubFamilyCode("11");
ColorType colorType3 = new ColorType();
colorType3.setNRFColorSubFamilyCode("11");
ColorType colorType4 = new ColorType();
colorType4.setNRFColorSubFamilyCode("12");
ColorType colorType5 = new ColorType();
colorType5.setNRFColorSubFamilyCode("12");
ColorType colorType6 = new ColorType();
colorType6.setNRFColorSubFamilyCode("13");
ColorType colorType7 = new ColorType();
colorType7.setNRFColorSubFamilyCode("13");
ColorType colorType8 = new ColorType();
colorType8.setNRFColorSubFamilyCode("14");
sortColorList.add(colorType);
sortColorList.add(colorType1);
sortColorList.add(colorType2);
sortColorList.add(colorType3);
sortColorList.add(colorType4);
sortColorList.add(colorType5);
sortColorList.add(colorType6);
sortColorList.add(colorType7);
sortColorList.add(colorType8);
int index = sortColorList.size();
int i = 0;
String baseColorSubFamilyCode = null;
HashMap<String, List<String>> hashMap = new HashMap<String, List<String>>();
List<String> subFamilyCodeList = null;
for (ColorType color : sortColorList)
{
i++;
if (baseColorSubFamilyCode == null) {
baseColorSubFamilyCode = color.getNRFColorSubFamilyCode();
subFamilyCodeList = new ArrayList<String>();
subFamilyCodeList.add(baseColorSubFamilyCode);
if (i == index) {
hashMap.put(baseColorSubFamilyCode, subFamilyCodeList);
}
} else if (baseColorSubFamilyCode != null
&& baseColorSubFamilyCode.equals(color
.getNRFColorSubFamilyCode())) {
subFamilyCodeList.add(color.getNRFColorSubFamilyCode());
if (i == index) {
hashMap.put(baseColorSubFamilyCode, subFamilyCodeList);
}
} else {
hashMap.put(baseColorSubFamilyCode, subFamilyCodeList);
baseColorSubFamilyCode = color.getNRFColorSubFamilyCode();
subFamilyCodeList = new ArrayList<String>();
subFamilyCodeList.add(baseColorSubFamilyCode);
if (i == index) {
hashMap.put(baseColorSubFamilyCode, subFamilyCodeList);
}
}
}
}
}