根据ArrayList<Object>中对象的多个属性值进行模糊匹配,并找到所有匹配 ...

曂沅仴駦  金牌会员 | 2024-9-16 20:07:07 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 669|帖子 669|积分 2007

在Java中,假如你想要根据ArrayList<Object>中对象的多个属性值进行模糊匹配,并找到所有匹配的对象,你可以通过遍历列表并利用条件语句来检查每个对象的属性。这里,我们假设你的对象类(比如MyClass)有多个属性,而且你想要根据这些属性的组合来查找匹配的对象。
以下是一个示例,展示了如何根据MyClass对象的两个属性(比如name和description)进行模糊匹配:
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. public class MyClass {
  4.     private String name;
  5.     private String description;
  6.     // 构造器、getter和setter省略...
  7.     // 假设有getter方法
  8.     public String getName() {
  9.         return name;
  10.     }
  11.     public String getDescription() {
  12.         return description;
  13.     }
  14.     // toString 方法用于输出方便
  15.     @Override
  16.     public String toString() {
  17.         return "MyClass{" +
  18.                "name='" + name + '\'' +
  19.                ", description='" + description + '\'' +
  20.                '}';
  21.     }
  22.     // 示例:根据多个属性模糊匹配
  23.     public static List<MyClass> findMatches(List<MyClass> list, String namePattern, String descriptionPattern) {
  24.         List<MyClass> matches = new ArrayList<>();
  25.         for (MyClass obj : list) {
  26.             if (obj.getName().contains(namePattern) && obj.getDescription().contains(descriptionPattern)) {
  27.                 matches.add(obj);
  28.             }
  29.         }
  30.         return matches;
  31.     }
  32.     public static void main(String[] args) {
  33.         List<MyClass> list = new ArrayList<>();
  34.         list.add(new MyClass("Alice", "Alice's story"));
  35.         list.add(new MyClass("Bob", "Bob's adventure"));
  36.         list.add(new MyClass("Charlie", "Charlie's journey with Alice"));
  37.         String namePattern = "Alice";
  38.         String descriptionPattern = "journey";
  39.         List<MyClass> matches = findMatches(list, namePattern, descriptionPattern);
  40.         for (MyClass match : matches) {
  41.             System.out.println(match);
  42.         }
  43.     }
  44. }
复制代码
在这个示例中,findMatches方法接受一个MyClass对象的列表和两个字符串模式(namePattern和descriptionPattern),然后遍历列表中的每个对象,检查其name和description属性是否都包罗相应的模式。假如两个条件都满足,则将该对象添加到结果列表中。最后,方法返回包罗所有匹配对象的列表。
在main方法中,我们创建了一个MyClass对象的列表,并调用了findMatches方法来查找名称包罗"Alice"且形貌包罗"journey"的所有对象。然后,我们遍历并打印出所有匹配的对象。
这种方法是灵活的,你可以根据须要添加更多的条件来匹配更多的属性。只需在if语句中添加更多的&&条件和相应的contains(或其他适当的比较方法)调用即可。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表