Java 显示符合特定标准的数组中的特定项

Java 显示符合特定标准的数组中的特定项,java,arrays,Java,Arrays,我在从数组中提取特定项并显示它们(如果它们是符合特定条件的项)时遇到问题 在某些上下文中,我有一个名为Person的数组,该数组使用excel文件填充。数组中的每个项都有多个属性,例如firstName、lastName和favoriteColor。我需要能够在控制台上打印出所有喜欢绿色的人 到目前为止,我已经有了它,所以它将显示每个人,但我正在努力减少它,只显示绿色作为他们最喜欢的颜色的人。我认为引起问题的区域看起来是这样的 for (final Person person : people)

我在从数组中提取特定项并显示它们(如果它们是符合特定条件的项)时遇到问题

在某些上下文中,我有一个名为Person的数组,该数组使用excel文件填充。数组中的每个项都有多个属性,例如firstName、lastName和favoriteColor。我需要能够在控制台上打印出所有喜欢绿色的人

到目前为止,我已经有了它,所以它将显示每个人,但我正在努力减少它,只显示绿色作为他们最喜欢的颜色的人。我认为引起问题的区域看起来是这样的

for (final Person person : people) {
  //System.out.println(person);
  for (favoriteColor == "Green");
  System.out.println(person);
}
我知道我最喜欢的颜色=“绿色”线有问题。我不太习惯Java,所以这让我有点困惑。你们当中有人对此有什么见解吗


谢谢

您需要在for循环中运行if条件来过滤数据。你应该这样做:

 for (Person person : people) {
        if(person.getFavoriteColor().equalsIgnoreCase("Green")){
                  System.out.println(person.getFirstName());
            }
        }

您可以添加多个if条件。

我不确定这是否是您想要的条件

当有如下数据结构时

 String [][] personArray = {
            {"Sam", "Horden", "Green"},
            {"Sam2", "Horden2", "Red"},
            {"Sam3", "Horden3", "Brown"},
            {"Sam4", "Horden4", "Blue"},
            {"Sam5", "Horden5", "Green"},
            {"Sam6", "Horden6", "Green"},
 };
您可以像下面这样使用for循环

for(String [] person : personArray){
        for(String color : person) {
            if(color == "Green")
                System.out.println(person[0]);
        }
} //out put will be sam, sam5, sam6

你的
是做什么的(favoriteColor==“绿色”)是吗?为什么?啊,谢谢。这就是我做错的地方。非常感谢你。