我想将java7程序转换为java 8.我想要下面的输出使用流API。使用流从列表中获取排名前3的计数
public List<String> getTopThreeWeatherCondition7() {
List<String> _Top3WeatherList = new ArrayList<String>();
Map<String, Integer> _WeatherCondMap = getWeatherCondition7();
List<Integer> _WeatherCondList = new ArrayList<Integer>(_WeatherCondMap.values());
Collections.sort(_WeatherCondList, Collections.reverseOrder());
List<Integer> _TopThreeWeathersList = _WeatherCondList.subList(0, 3);
Set<String> _WeatherCondSet = _WeatherCondMap.keySet();
Integer count = 0;
for (String _WeatherCond : _WeatherCondSet) {
count = _WeatherCondMap.get(_WeatherCond);
for (Integer _TopThreeWeather : _TopThreeWeathersList) {
if (_TopThreeWeather == count) {
_Top3WeatherList.add(_WeatherCond);
}
}
}
_WeatherCondList = null;
_WeatherCondMap = null;
_TopThreeWeathersList = null;
_WeatherCondSet = null;
return _Top3WeatherList;
}
请由于标签设置更多的标签说话,更多的用户。例如添加:java,java7,java8。 – manuzi1
基于你想要做的事情,从头开始:getWeatherCondition7()。valueSet()。stream()。sorted(Collections.reverseOrder())。limit(3).collect(Collections.toList ());这应该让你开始朝正确的方向发展。 – AlexC
我不会称之为“Java 7程序”。首先,使用标准的命名约定,即用小写字母代替'_' +大写字母开始变量名称。其次,使用后不要将变量分配给'null'。第三,不要使用未使用的默认值来初始化变量(如'count = 0')。解决这些问题后,我们可以将其称为“Java程序”。开始使用“菱形运算符”'<>'而不是重复类型参数,我们可以将其称为“Java 7程序”。 – Holger