如何按数组中的姓氏搜索?

问题描述

我正在尝试创建一种在全名数组中搜索姓氏的方法,但是它似乎不起作用。关于我在做什么错的任何想法:


        public int searchRegisterByFamilyName(String familyName) {
            
             int searchByFamilyName(Name [] list,String fullname) {
                 for (int i= 0; i < list.length; i++) {
            
            String[] splitted = fullname.split(" ");

            String firstName;
            String surName;  
            firstName = splitted[0];
            surName = splitted[1];
            
            String[] splittedd = familyName.split(" ");

            String FirstName;
            String lastName;     
            FirstName = splittedd[0];
            lastName = splittedd[1];
                              
                              if (list[i].surName.equals(lastName)) 
                                  return i;
                              }
                          }
                          return -1;
        }

数组中的名称是全名,所以我必须将其拆分为仅搜索姓氏。

理想情况下,我希望它接受String参数,并根据名称是否与各自的姓氏一起返回true或false。

解决方法

Stream方式:

Set<Name> matchedNames = names
.stream()
.filter(n -> n.getFamilyName().equals(requestedFamilyName))
.collect(Collectors.toSet());

这将给出所有(如果有)匹配的名称