H35*_*5am 6 java collections arraylist
我找不到元素,这是我的代码:
public static void main(String[] args) {
BufferedReader br = getFileReader("reader.csv");
ArrayList<Monitoring> col = getCollection(br);
//sort the collection on 'beginTime'
for (Monitoring x : col)
System.out.println(x.toString());
BeginTimeComparator beginTime = new BeginTimeComparator();
Collections.sort(col,beginTime);
System.out.println("Begin time:");
for (Monitoring x : col)
System.out.println(x.toString());
Run Code Online (Sandbox Code Playgroud)
这是我遇到麻烦的部分,我不知道如何搜索使用endTime 2015-03-10获取对象.BTW这是一行cvs数据:
UnitId;BeginTime;EndTime;Type;Min;Max;Sum
Run Code Online (Sandbox Code Playgroud)
14100072; 2015-03-10 07:12:20; 2015-03-10 7:13:20; Gps/GpsAccuracyGyroBias; 0; 0; 0
//find the amount of elements that were sent on 'endTime' = 2015-03-10 (just the date)
EndTimeComparator endTime = new EndTimeComparator();
String findThis = "2015-03-10";
Collections.sort(col, endTime);
for(Monitoring x : col){
if(x.getEndTime().equals(findThis)){
System.out.println("Here is 'endTime= 2015-03-10' :");
System.out.println(x.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我试过这个,但两个都没有用:
int index = Collections.binarySearch(col, findThis.toString(), null);
System.out.println("Here is 'endTime= 2015-03-10' :");
System.out.println(index);
Run Code Online (Sandbox Code Playgroud)
猜测 getEndTime() 返回 LocalDateTime 您无法将字符串与 LocalDateTime 类型进行比较。您可以尝试将 LocalDateTime 解析为 LocalDate 并用 LocalDate 类型填充“findThis”变量。
因为代码说了1000多个字:
EndTimeComparator endTime = new EndTimeComparator();
Collections.sort(col, endTime);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate findThis = LocalDate.parse("2015-03-10", dtf);
System.out.println("Here is 'endTime= 2015-03-10' :");
for (Monitoring x : col) {
if (x.getEndTime().toLocalDate().equals(findThis)) {
System.out.println(x.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1256 次 |
| 最近记录: |