這個問題在這里已經有了答案: 如何比較 Java 中的字串? (23 個回答) 4 小時前關閉。
** 我剛剛開始研究 java 中的流,我被這個問題困住了。在下面的代碼中,給了我 Fclass 的主要方法,我必須創建一個類 Employee,它是建構式和 getter 方法,我還必須在 Fclass 中創建一個方法“查詢”,它應該回傳那些具有 Employee 物件的流相同的部門名稱和薪水大于或等于將給出的輸入。我已經撰寫了代碼,但是當我運行它時,它不會產生任何輸出。有人可以告訴我我哪里出錯了嗎?**
import java.util.*;
import java.util.stream.*;
class Employee{
private String n;
private String d;
private int s;
public Employee(String name, String dep, int sal) {
this.n = name; //define class Employee
this.d = dep;
this.s = sal;
}
public String getname() {
return n;
}
public String getdep() {
return d;
}
public int getsal() {
return s;
}
public String toString() {
return n ":" d ":" s " ";
}
}//define class Employee
class FClass{
public static Stream<Employee> query(ArrayList<Employee> eList, String d, double s) {
Stream<Employee> emp = eList.stream().filter(x->x.getdep()==d && x.getsal() >= s);
return emp;
}//define method query
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
var eList = new ArrayList<Employee>();
eList.add(new Employee("Jack", "HR", 30000));
eList.add(new Employee("Aria", "HR", 40000));
eList.add(new Employee("Nora", "IT", 50000));
eList.add(new Employee("Bella", "IT", 60000));
eList.add(new Employee("Jacob", "IT", 70000));
eList.add(new Employee("James", "HR", 80000));
String d = sc.next(); //read department
double s = sc.nextInt(); //read salary
var st = query(eList, d, s);
st.forEach(n -> System.out.println(n " "));
}
}
uj5u.com熱心網友回復:
在您的過濾器中,您將字串與==:
x.getdep()==d
請x.getdep().equals(d)改用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433413.html
下一篇:如何從流中收集雙打串列?
