這裏是場景,在我的源列表中,它包含所有Users對象。每個用戶對象將有id
,event
和timestamp
。我需要創建一個目標列表來包含所有具有每個id的最新時間戳記錄的用戶對象。像下面的例子Java - 將數據從一個列表傳輸到另一個列表
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.vincent.object.User;
public class Test {
public static void main(String[] args) throws Exception {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
User u1 = new User("1", "55", dateFormat.parse("2017-10-01 10:11:01.111"));
User u2 = new User("1", "105", dateFormat.parse("2017-10-01 10:11:02.111"));
User u3 = new User("2", "55", dateFormat.parse("2017-10-01 10:11:03.111"));
List<User> sources = new ArrayList<>();
sources.add(u1);
sources.add(u2);
sources.add(u3);
List<User> destination = new ArrayList<>();
// I want my destination array only contains following 2 result:
// u2 and u3 from the source
}
}
我該怎麼辦?
編輯:這裏是User類
import java.util.Date;
public class User {
private String id;
private String reason;
private Date date;
public User(String id, String reason, Date date) {
super();
this.id = id;
this.reason = reason;
this.date = date;
}
// getter setter
}
如果我看了這個問題,用戶「1」的最新日期和用戶「2」。一些流操作? –
你好,文森特你是指在另一個列表中保存一個列表?你不能只是在添加和添加一個條件來檢查列表中的內容是否通過使用相同的存儲源列表!Collections.disjoint(list1,list2);或正常等於方法list1.equals(list2); – Pradeep
以下是使用有狀態過濾器謂詞的流的問題:https://stackoverflow.com/questions/23699371/java-8-distinct-by-property –