Spring Boot 挑选字符串列表中的最大数字[duplicate]

zed5wv10  于 2022-11-29  发布在  Spring
关注(0)|答案(1)|浏览(166)

此问题在此处已有答案

Find Max number from List of String numbers using Java Streams(5个答案)
3天前关闭。
我有一个带有“数字”的字符串列表:"Rain Probability": [ "100", "95", "95" ]
我只想得到最大的一个,然后我把所有的东西放在一个叫做“result”的列表里,而不是字符串列表,我只想得到最大的数字。
`

public List<WeeklyForecast> convert(){

        AllForecast allForecast = Templates.restTemplate(restTemplate);
        List<NextDays> something = allForecast.getNextDays();
        List<WeeklyForecast> result = new ArrayList<WeeklyForecast>();
        
        
        for (int i=0; i< something.size(); i++){
            NextDays before = something.get(i);
            WeeklyForecast weekly = new WeeklyForecast(
              before.getData().getData(),
              before.getTemperature().getMaximumTemperature(),
              before.getTemperature().getMinimumTemperature(),
              before.getRain());

            result.add(i,weekly);
        }
        
        return result;
       
       // before.getRain().stream().mapToInt(Integer::parseInt).max().orElse(-1)     
     
        
    }

`
这是我的WeeklyForecast模型:

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class WeeklyForecast {

    @JsonProperty("Date")
    private String data;

    @JsonProperty("Maximum Temperature")
    private String tempMax;

    @JsonProperty("Minimum Temperature")
    private String tempMin;

    @JsonProperty("Rain Probability")
    private int rain;

}

和NextDays对象:
@JsonIgnoreProperties(忽略未知=真)公共类NextDays {

@JsonProperty("@attributes")
private NextDate data;

private List<String> rain;

@JsonProperty("temperatura")
private NextTemperature temperature;

public NextDays(){
    rain = new ArrayList<>();
}

public NextDate getData() {
    return data;
}

public void setData(NextDate data) {
    this.data = data;
}

public NextTemperature getTemperature() {
    return temperature;
}

public void setTemperature(NextTemperature temperature) {
    this.temperature = temperature;
}

@JsonSetter("prob_precipitacion")
public void setNextRain(JsonNode nextRain) {

    if (nextRain != null) {
        if (nextRain.isTextual()) {
            rain.add(nextRain.asText());
        } else if (nextRain.isArray()) {
            for(JsonNode node : nextRain) {
                rain.add(node.asText());
            }
        }
    }
}

public List<String> getRain() {
    return rain;
}

}
我必须把字符串列表转换成整型?我该怎么做呢?我想在“for”循环中做这件事是可能的。

xdnvmnnf

xdnvmnnf1#

这样就可以了:

public List<WeeklyForecast> convert(){

    AllForecast allForecast = Templates.restTemplate(restTemplate);
    List<NextDays> something = allForecast.getNextDays();
    List<WeeklyForecast> result = new ArrayList<WeeklyForecast>();
    
    
    for (int i=0; i< something.size(); i++){
        NextDays before = something.get(i);
        WeeklyForecast weekly = new WeeklyForecast(
          before.getData().getData(),
          before.getTemperature().getMaximumTemperature(),
          before.getTemperature().getMinimumTemperature(),
          before.getRain().stream().mapToInt(Integer::parseInt).max().orElse(-1));

        result.add(i,weekly);
    }
    
    return result;   
}

相关问题