\
\
@EqualsAndHashCode(of = "vmId")
public class VirtualMachine {
@Getter
@Setter
private Integer id;
@Getter
@Setter
private String vmName;
@Getter
@Setter
private String userFor;
@Getter
@Setter
private Integer memory;
@Getter
@Setter
private Integer cpu;
@Getter
@Setter
private Integer hardDisk;
@Getter
@Setter
private String templateGuid;
@Getter
@Setter
private String vmId;
\
法一去重复:利用set的不可以存重复对象,去重复【对象要实现hashcode、equals】\
Set set = new HashSet();
for (Object object : virtualMachineList) {
set.add(object);
}
for (Object object : listVms) {
set.add(object);
}
System.out.println("***************::" + set.size());
法二去重复:
/**
* 将列表中重复的虚拟机移除,重复指的是vmId相同
*
* @param vmList
* @return
*/
public ArrayList<VirtualMachine> removeDuplicteVm(List<VirtualMachine> vmList) {
Set<VirtualMachine> s = new TreeSet<VirtualMachine>(new Comparator<VirtualMachine>() {
@Override
public int compare(VirtualMachine o1, VirtualMachine o2) {
System.out.println(o1.getVmId() + "|" + o2.getVmId());
String v1 = o1.getVmId() != null ? o1.getVmId() : "0";
String v2 = o2.getVmId() != null ? o2.getVmId() : "0";
return v1.compareTo(v2);
}
});
s.addAll(vmList);
return new ArrayList<VirtualMachine>(s);
}
\
取交集::::::\
使用集合的自带方法,removeAll取交集\
virtualMachineList.removeAll(listVms);
\
\
\
\
\
\
\
\
\