많은 코드를 작성할 필요가 없으므로 Apache Common BeanUtils를 사용하고 데이터 유형 변환도 적절합니다.
이 경우 object1List와 object2List는 모두 ID를 기준으로 동일한 순서 여야합니다. 이러한 오브젝트 1 및 Object2 모두 ID를 기반으로
예제 코드
Object1.java
public class Object1 implements Comparable<Object1>{
private Integer id;
private String name;
private int quantity;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public int compareTo(Object1 compareObject1) {
int compareId = ((Object1) compareObject1).getId();
//ascending order
return this.id - compareId;
}
}
Object2.java
public class Object2 implements Comparable<Object2>{
private Integer id;
private double amount ;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public int compareTo(Object2 compareObject2) {
int compareId = ((Object2) compareObject2).getId();
//ascending order
return this.id - compareId;
}
}
을 정렬이 사용 Comparable 인터페이스를 가지고하려면 Object1와 Object2.java와 같은 필드 명을 가지는 Object3.java
int cnt = 0;
List<Object3> object3List = new ArrayList<Object3>();
List<Object1> object1List = Collections.sort(object1List);
List<Object2> object2List = Collections.sort(object2List);
for(Object1 obj1 : object1List) {
BeanUtils.copyProperties(obj3, obj1);
Object2 obj2 = object2List.get(cnt);
BeanUtils.copyProperties(obj3, obj2);
object3List.add(obj3);
cnt ++;
}
그래서 링크 된 목록입니까? 'list1.get (0)'은 최종 객체에서'list2.get (0)'에 링크 될 것인가? – sp00m
아니요, 조인은 요소 순서가 아닌 ID를 기반으로해야합니다. 예를 들어,'list1.get (23)'은 id가 같기 때문에'list2.get (1)'과 합쳐 져야합니다. –