Java 选择列表元素

标签 java list select arraylist

当我必须创建一个列表并在其中选择某些内容时,我陷入了困境。

我有一个可执行文件

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"));

    }
}

我有我的类(class)人员

public class Personne{
    private String name;

    public Personne(String name){
    this.name=name;
    }

    public String getPersonne(){
    return this.name;
    }
}

在我的类(class)周末,我尝试选择安娜这个名字

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);
   }
 }

最佳答案

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);

关于Java 选择列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52544312/

相关文章:

java - FireFox.exe 路径(根据操作系统)

MYSQL SELECT WHERE LIKE WITH AES_ENCRYPT

php - 从 mysql 表 WHERE 字段 ='$array' 中选择?

java - 在 logcat 中查看日志中给出的字符串 - Android

java - 使用 Java 的多行正则表达式帮助

java - 在 Java 中检查指定用户帐户的文件权限

arrays - 创建一个包含可在 PowerShell 中动态增长的不同对象数组的对象

python - 是否可以在 Python 的一条语句中连接列表索引?

Python - 查找列表中第一个非空项的索引

mysql 查询使用 AND 子句在逗号分隔列表中搜索多个值