пример У меня есть два списка, позволяющих List newList и List oldList,
1) newRec -> Создать список объектов для (newRec), найдя все объекты в newListпараметр, которого нет в параметре oldList.
2) newUpdate &&
3) oldUpdate -> Построить ("newUpdate") и ("oldUpdate") списки объектов дляобновить, найдя все объекты, которые существуют в обоих параметрах newList и oldList, но имеют разные описания (xxx не совпадает).
4) oldRec -> Построить список объектов (oldRec), найдя все объекты в параметре oldList, которых нет в параметре newList.
так что я наконец-то получу четыре списка: newRec, newUpdate, oldUpdate, oldRec ....
любезно помогите мне .. Заранее спасибо
пожалуйста, обратитесь к моему методу ..
public Response maintainFieldDescriptions(List<BarcodeFieldDesc> newDescList,
List<BarcodeFieldDesc> oldDescList)
{
try
{
List<BarcodeFieldDesc> writes = new ArrayList<BarcodeFieldDesc>();
List<BarcodeFieldDesc> updatesNew = new ArrayList<BarcodeFieldDesc>();
List<BarcodeFieldDesc> updatesOld = new ArrayList<BarcodeFieldDesc>();
List<BarcodeFieldDesc> deletes = new ArrayList<BarcodeFieldDesc>();
if ( newDescList != null && newDescList.size() > 0 )
{
for ( int i = 0; i < newDescList.size(); i++ )
{
BarcodeFieldDesc temp = newDescList.get(i);
boolean handled = false;
if ( oldDescList != null && oldDescList.size() > 0 )
{
for ( int j = 0; j < oldDescList.size(); j++ )
{
BarcodeFieldDesc temp2 = oldDescList.get(j);
if ( temp.getKey().equals(temp2.getKey()) )
{
handled = true;
// Keys match
if ( !temp.toString().equals(temp2.toString()) )
{
// Difference found
updatesNew.add(temp);
updatesOld.add(temp2);
}
}
else
{
// Keys do not match
}
}
}
if ( !handled )
{
writes.add(temp);
}
}
}
if ( oldDescList != null && oldDescList.size() > 0 )
{
for ( int i = 0; i < oldDescList.size(); i++ )
{
BarcodeFieldDesc temp = oldDescList.get(i);
boolean handled = false;
for ( int j = 0; j < newDescList.size(); j++ )
{
BarcodeFieldDesc temp2 = newDescList.get(j);
if ( temp.getKey().equals(temp2.getKey()) )
{
handled = true;
}
else
{
// Keys do not match
}
}
if ( !handled )
{
deletes.add(temp);
}
}
}
public String getKey()
{
String result = "";
result = result + StringUtil.pad(getFDPART(), 3, ' ', 'L');
result = result + StringUtil.pad(getFDPROF(), 10, ' ', 'L');
result = result + StringUtil.pad(getFDOTFT(), 20, ' ', 'L');
result = result + StringUtil.pad(getFDLNGC(), 2, ' ', 'L');
return result;
}
public String toString()
{
String result = "";
result = result + StringUtil.pad(getFDPART(), 3, ' ', 'L');
result = result + StringUtil.pad(getFDPROF(), 10, ' ', 'L');
result = result + StringUtil.pad(getFDOTFT(), 20, ' ', 'L');
result = result + StringUtil.pad(getFDLNGC(), 2, ' ', 'L');
result = result + StringUtil.pad(getFDDESC(), 32, ' ', 'L');
return result;
}
, который находится в классе BarcodeFieldDesc ..
поэтому здесь, если newList и OldList имеют элемент, то он не создает список newUpdate и oldUpdate..