无法使用 Lambda 流过滤器获得响应
Unable to get a response with Lambda Stream Filter
这是我遇到问题的流 "airportFilteredList",它应该打印与给定 "Turkey" 字符串的过滤器相匹配的国家/地区名称,但它不会向控制台打印任何内容,在流上使用 count() 给出值 0
public void getFilteredAirportList(String filteredText){
System.out.println(filteredText); //returns Turkey
Predicate<Airport> filterCountry = u -> u.getCountry() == filteredText;
Stream<Airport> airportFilteredList = airportList.stream().filter(filterCountry);
airportFilteredList.forEach(u -> System.out.println(u.getCountry()));
}
我在同一个列表中制作了一个没有过滤器的通用流,但效果很好,returns 机场的所有国家/地区名称。
public void getAirportList(){
Stream <Airport> airportStream = airportList.stream();
airportStream.forEach(u -> u.getCountry()); //returns Turkey
}
从中检索 Airport 对象的 ArrayList
ArrayList<Airport> airportList = new ArrayList<Airport>();
public void createAirport(String airport, String country, String continent,
String airfield_length) {
airportList.add(new Airport(airport, country, continent,
airfield_length));
}
完整的源代码位于 https://github.com/Jointts/JavaExam/tree/master/JavaExam
在 java 中使用 equals
而不是 ==
来比较 String
因为 ==
比较引用而不是值。
Stream<Airport> airportFilteredList = airportList.stream().filter(
u -> "Turkey".equals(u.getCountry()));
这是我遇到问题的流 "airportFilteredList",它应该打印与给定 "Turkey" 字符串的过滤器相匹配的国家/地区名称,但它不会向控制台打印任何内容,在流上使用 count() 给出值 0
public void getFilteredAirportList(String filteredText){
System.out.println(filteredText); //returns Turkey
Predicate<Airport> filterCountry = u -> u.getCountry() == filteredText;
Stream<Airport> airportFilteredList = airportList.stream().filter(filterCountry);
airportFilteredList.forEach(u -> System.out.println(u.getCountry()));
}
我在同一个列表中制作了一个没有过滤器的通用流,但效果很好,returns 机场的所有国家/地区名称。
public void getAirportList(){
Stream <Airport> airportStream = airportList.stream();
airportStream.forEach(u -> u.getCountry()); //returns Turkey
}
从中检索 Airport 对象的 ArrayList
ArrayList<Airport> airportList = new ArrayList<Airport>();
public void createAirport(String airport, String country, String continent,
String airfield_length) {
airportList.add(new Airport(airport, country, continent,
airfield_length));
}
完整的源代码位于 https://github.com/Jointts/JavaExam/tree/master/JavaExam
在 java 中使用 equals
而不是 ==
来比较 String
因为 ==
比较引用而不是值。
Stream<Airport> airportFilteredList = airportList.stream().filter(
u -> "Turkey".equals(u.getCountry()));