gpt4 book ai didi

java - 如何查找特定日期的临时工列表?

转载 作者:行者123 更新时间:2023-11-30 01:43:47 24 4
gpt4 key购买 nike

我是一名刚接触java的学生,我遇到了以下问题。我有一个包含超过 100 万个天气读数的大型字符串数组,每个元素包含站点 ID、站点名称、站点纬度、站点经度、年、月、日期(1-31)、小时、风速、温度。

我的问题是:英国任何地方的气温下降到或低于 0.0 有多少天。所有条目均来自同一年,因此这不是问题。但是月份 int 变量的范围是从 1 到 12,日期 int 变量的范围是从 1 到 31。组织数据以允许我只计算唯一天数的最佳方法是什么?

我已经创建了一个名为 WeatherRecords 的对象类,它具有 get 方法,该方法用逗号分隔字符串,并将每个元素解析为正确的类型,并将对象存储在数组中。就像这样:

        String[] weatherData = WeatherData.getData();
ArrayList<WeatherRecords> records = new ArrayList<>();
for (int i = 1; i < weatherData.length; i++) {
String line = weatherData[i];
String[] elements = line.split(",");
String siteIdString = elements[0];
String siteName = elements[1];
String siteLatString = elements[2];
String siteLonString = elements[3];
String recordYearString = elements[4];
String recordMonthString = elements[5];
String recordDateString = elements[6];
String recordHourString = elements[7];
String recordWindSpeedString = elements[8];
String recordTempString = elements[9];
int siteId = Integer.parseInt(siteIdString);
double siteLat = Double.parseDouble(siteLatString);
double siteLon = Double.parseDouble(siteLonString);
int recordYear = Integer.parseInt(recordYearString);
int recordMonth = Integer.parseInt(recordMonthString);
int recordDate = Integer.parseInt(recordDateString);
int recordHour = Integer.parseInt(recordHourString);
int recordWindSpeed = Integer.parseInt(recordWindSpeedString);
double recordTemp = Double.parseDouble(recordTempString);
WeatherRecords record = new WeatherRecords(siteId, siteName, siteLat, siteLon, recordYear, recordMonth,
recordDate, recordHour, recordWindSpeed, recordTemp);
records.add(record);
}
return records;

}

最佳答案

请尝试下面所示的代码。使用LocalDate代表您的年-月-日。然后使用流来过滤和收集您的目标对象。

class WeatherRecord{
double recordTemp;
LocalDate localDate;
String siteName;
}

…还有…

WeatherRecord w1 = new WeatherRecord();
w1.setRecordTemp(1);
w1.setSiteName("UK");
w1.setLocalDate(LocalDate.of(recordYear, recordMonth, recordDate));
records.add(w1);

List<WeatherRecord> filteredList =
list
.stream()
.filter( w -> w.getRecordTemp() <= 0 )
.collect( Collectors.toList() )
;

关于java - 如何查找特定日期的临时工列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58956374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com