こんにちは、コードに問題があります。
String[] vArr = new String[4];
vArr[0] = "329~abc-2~PACKET_DATA_GATEWAY_IP_ADDRESS~1.2.3.4";
vArr[1] = "328~abc-1~PACKET_DATA_GATEWAY_IP_ADDRESS~1.1.1.1";
vArr[2] = "329~abc-2~PACKET_DATA_GATEWAY_PORT_NUMBER~123";
vArr[3] = "328~abc-1~PACKET_DATA_GATEWAY_PORT_NUMBER~123";
if(vArr != null && vArr.length > 0) {
System.out.println("vArr.length ::" + vArr.length);
ArrayList<VehicleTO> aprogList = new ArrayList<VehicleTO>();
for(int i = 0;i < vArr.length; i++) {
System.out.println("Inside for loop ::" + vArr.length);
String[] iData = vArr[i].split("~");
System.out.println("value retrieved :" + Arrays.toString(iData));
HashMap<Set, ArrayList<VehicleTO>> programValues =
new HashMap<Set, ArrayList<VehicleTO>>();
String programName = null;
programName = iData[1];
HashSet<String> listnerOutputArgList = new HashSet<String>();
listnerOutputArgList.add(programName);
Collections.unmodifiableSet(listnerOutputArgList);
String progId = null;
String paramName = null;
String paramvalue = null;
progId = iData[0];
paramName = iData[2];
paramvalue = iData[3];
VehicleTO vehTO = new VehicleTO();
vehTO.setProgramName(programName);
if(paramName.equals("PACKET_DATA_GATEWAY_IP_ADDRESS")) {
vehTO.setIpAddress(paramvalue);
}
System.out.println("Setting Values ip ::" + vehTO.getIpAddress());
if(paramName.equals("PACKET_DATA_GATEWAY_PORT_NUMBER")) {
vehTO.setPortNumber(paramvalue);
}
System.out.println("Setting Values port ::" + vehTO.getPortNumber());
if(listnerOutputArgList.contains(vehTO.getProgramName())) {
aprogList.add(vehTO);
}
int progDet = aprogList.size();
System.out.println("The list value:"+ progDet);
programValues.put(listnerOutputArgList,aprogList);
for (Iterator<Set> it = programValues.keySet().iterator(); it.hasNext()) {
Set key = it.next();
if(programValues.containsKey(key)) {
programValues.get(key).add(vehTO);
ArrayList<VehicleTO> value = programValues.get(key);
for (int nCount = 0; nCount < value.size(); nCount++) {
System.out.println((String)value.get(nCount).getIpAddress());
System.out.println((String)value.get(nCount).getPortNumber());
}
}
}
}
出力は次のように表示する必要があります。
abc-1 1.2.3.4 123
abc-2 1.1.1.1 123
しかし、私の問題は、出力が間違っているため、リストの値が2ではなく4として表示されていることです。
これを解決する方法: