当我必须创建一个列表并在其中选择某些内容时,我陷入了困境。我有一个可执行文件public class Executable{ public static void main(String [] args){ WeekEnd we = new WeekEnd(); Personne pierre = new Personne("Pierrot"); Personne anna = new Personne("anna"); we.addPersonne(pierre); we.addPersonne(anna); System.out.println("test : "+we.findUsingEnhancedForLoop("anna")); }}我有我的班级 Personnepublic class Personne{ private String name; public Personne(String name){ this.name=name; } public String getPersonne(){ return this.name; }}还有我的班级周末,我尝试选择安娜这个名字import java.util.List;import java.util.ArrayList;public class WeekEnd{ private ArrayList<Personne> listePersonne; public WeekEnd(){ this.listePersonne = new ArrayList<>(); } public Personne findUsingEnhancedForLoop( String name, ArrayList<Personne> listePersonne) { for (Personne personne : listePersonne) { if (personne.getPersonne().equals(name)) { return personne; } } return null; } public void addPersonne(Personne personne){ listePersonne.add(personne); } }
2 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
该WeekEnd班已经有一个listePersonne成员。你不应该传递这样的参数,它只会隐藏这个成员:
public Personne findUsingEnhancedForLoop(String name) {
// Rest of the code, as you had it...
请注意,顺便说一下,使用 Java 8 的流可以显着清理方法的实现:
return
listePersonne.stream().filter(p -> p.getPersonne().equals(name)).findFirst().orElse(null);
添加回答
举报
0/150
提交
取消