当前位置: 首页 > 知识库问答 >
问题:

在Java中的匿名对象数组列表中搜索这些对象中的特定变量

段干博明
2023-03-14

我的任务是创建一个数组列表,其中包含联系人信息对象。然后,我必须询问要从哪个字段搜索,以及要搜索的信息。我很难搞清楚搜索部分。我试图进入每个对象,指定要搜索并找到匹配的变量。这是我必须创建的示例输出。我的老师想把这个代码结构用于主和副教材。

这是我很难弄清楚的领域。我想学习,但是当你陷入困境,书中和网上的所有例子都没有这种场景时,就会变得令人沮丧。谢谢你的任何投入。

搜索方法:接收ArrayList作为参数输出搜索菜单(见底部的示例)使用开关并搜索ArrayList指定的字段。如果找到条目,则返回索引号,如果没有找到,则返回-1

请输入名字:尼克请输入姓氏:杜威请输入街道地址:长岭路3232号请输入城市,州:德尔市,好的请输入邮政编码:73115

请输入要搜索的字段: 1请输入要搜索的值:尼克名:尼克姓:杜威街地址:朗里奇路3232号。市,州:德尔市,好的邮政编码: 73115

这是我目前的代码。

 import java.util.ArrayList;
 import java.util.Scanner;

 public class DurrieEdwardChapter10 
 {
   public static void main(String[] args) 
 {
   Scanner stdIn = new Scanner(System.in);
   String a,b,c,d,e;
   ArrayList<DuEdAddressBook> aBook = new ArrayList<DuEdAddressBook>();

   for (int count = 0; count < 1; count++) 
   {
     DuEdAddressBook entry = new DuEdAddressBook();
     System.out.print("Please Enter First Name: ");
     a = stdIn.nextLine();
     System.out.print("Please Enter Last Name: ");
     b = stdIn.nextLine();
     System.out.print("Please Enter Street Address:");
     c = stdIn.nextLine();
     System.out.print("Please Enter City, State:");
     d = stdIn.nextLine();
     System.out.print("Please Enter Zip Code:");
     e = stdIn.nextLine();
     entry.addEntry(a,b,c,d,e);
     aBook.add(count,entry);
   }
   int foundIndex = DuEdAddressBook.search(aBook); 
   System.out.println(); 
   if (foundIndex > -1)
   {
     aBook.get(foundIndex).display();
   }
   else
   {
     System.out.println("No Entry Found");
   }
 } 
}

 import java.util.ArrayList;
 import java.util.Scanner;
 public class DuEdAddressBook 
 {
   String first;   
   String last;   
   String street;  
   String state;  
   String zip;

 public DuEdAddressBook()
 {
 }
 public DuEdAddressBook(String a, String b, String c, String d, String e)
 {
   first = a;
   last = b;
   street = c;
   state = d;
   zip = e;
 }    
 public void addEntry(String a,String b,String c,String d, String e)
 {
   first = a;
   last = b;
   street = c;
   state = d;
   zip = e;
 }
 public static int search(ArrayList<DuEdAddressBook> a)
 {
   Scanner stdIn = new Scanner(System.in);   
   String searchNum;
   String searchValue;  
   System.out.print("Please Enter Field to Search:");
   searchNum = stdIn.nextLine();
   System.out.print("Please Enter Value to Search For:");
   searchValue = stdIn.nextLine();
   int n = 0; // index of search result
   return n;
 }
 public void display()
 {
   System.out.println("First Name:" + first);
   System.out.println("Last Name:" + last);
   System.out.println("Street Address:" + street);
   System.out.println("City,State:" + state);
   System.out.println("Zip Code:" + zip);
 }
}

共有1个答案

云英才
2023-03-14

IMHO最简单的方法是通过反射找到物体
迭代对象列表并分析其字段值类似于:

Field[] fields = DuEdAddressBook.class.getFields(); //or getDeclaredFields()
for (Field f : fields)
{
   String fieldName = f.getName();
   Object fieldValue = f.getValue(theDuEdObjectToAnalyze);
   //here you can compare the fieldvalue with the value the user entered
}
 类似资料:
  • 问题内容: 我有点迷茫,无法做到最快。我有一大堆具有基本变量属性的对象(带有getters / setters方法),我需要在此列表中进行搜索以找到列表中与给定参数匹配的对象 我已经找到了如何进行常规列表搜索的方法,但是我需要进行搜索,例如搜索列表中每个对象的调用getName()的结果的值,并获取结果与我的输入匹配的对象。 如下所示,第三个参数是方法调用的结果,第二个是我要查找的结果。 任何建议

  • 我试图根据用户输入找到一个特定的对象。用户需要输入姓名和性别,然后程序应该搜索ArrayList,查看是否有匹配的姓名和性别。ArrayList中的对象有3个实例变量,但程序只搜索2个。如何在ArrayList中只搜索选定的几个特征? 在我的项目中,我有: 其中,nameList是ArrayList的名称,getName()是返回存储在对象中的名称的方法的名称,getGender()是返回存储在对

  • 问题内容: 我有一堂课。它具有以下特征; 它具有2个属性,和。1个人可以拥有许多电话,因此您可能会在下面看到具有多个ID的人。 还有另一门课叫。它将有一个称为的方法。 personList,具有3-4个Person对象。我需要搜索PersonArrayList并找到与Person对象匹配的对象。我怎样才能做到这一点? 注意:我尝试过。但这是行不通的。 问题答案: 我尝试了personList.co

  • 问题内容: 假设我正在创建一个简单的类以类似于C样式的结构工作,只保存数据元素。我试图弄清楚如何在对象列表中搜索属性等于某个值的对象。下面是一个简单的示例,以说明我要执行的操作。 例如: 我将如何搜索myList列表以确定它是否包含n == 5的元素? 我一直在谷歌搜索和搜索Python文档,我想我可以通过列表理解来做到这一点,但是我不确定。我可能还要补充一点,我必须使用Python 2.4.3,

  • 我有一个对象的arraylistTile有我想创建一个搜索函数,在这里我迭代遍历瓷砖的每个属性和arraylist中每个颜色内的每个属性(就像每个循环的嵌套),有没有一种简单的方法可以做到这一点?

  • 我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部