我有一個包含近600個條目的自定義數組列表。以最快的方式在Java中基於收集條件過濾數據
我需要根據某些條件過濾一些值。我嘗試基本循環的東西,但其非常耗時的過程,我想要的是過濾數據的最快方法。
public class MyModel {
private boolean attempeted = false;
private String answer;
public MyModel(String answer) {
this.answer = answer;
}
public void setAttempted(boolean attempeted) {
this.attempeted = attempeted;
}
public String getAnswer() {
return answer;
}
public boolean isAttempeted() {
return attempeted;
}
}
以上是我的模型我想要的是我需要得到具有試圖值爲true的數據。這是我的:
ArrayList<TestAnswerModel>myMainArrayList=array which contain all my data
ArrayList<TestAnswerModel>filterArrayList=new ArrayList<>();
for(int i=0;i<myMainArrayList.size();i++)
{
if(myMainArrayList.get(i).isAttempeted()) {
filterArrayList.add(myMainArrayList.get(i))
}
}
上述工作正常,但如果我的數據太大,它需要很多時間。也有些時候,數據將是600,並且只有2或3個值纔會有效,所以這個循環會發生,沒有任何結果。
我想要什麼最快的方法來過濾數據。
我懷疑你的其他代碼有問題。因爲它應該非常快速的600個條目。好的..你可以通過放置時間日誌來測量循環時間嗎? (*測量時間只取決於這個循環,不包括你的數據讀取邏輯*) –
是我上面的方法是最快的方法嗎? –
這是非常主觀的問題,但你能回答我最初的問題嗎? –