Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,从对象数组列表中查找和检索特定类的对象_Java_List - Fatal编程技术网

在Java中,从对象数组列表中查找和检索特定类的对象

在Java中,从对象数组列表中查找和检索特定类的对象,java,list,Java,List,我有一个对象的数组列表。需要找到对象列表中是否有特定感兴趣类的对象,然后检索它。Java中是否有任何内置函数或其他实用程序可以直接检索此对象。请注意,我希望避免使用迭代器循环 例如: List<Object> _list = new ArrayList<Object>(); //I am creating Objects using reflection and adding it to list _list.add(object); //Now i have a

我有一个对象的数组列表。需要找到对象列表中是否有特定感兴趣类的对象,然后检索它。Java中是否有任何内置函数或其他实用程序可以直接检索此对象。请注意,我希望避免使用迭代器循环

例如:

List<Object> _list = new ArrayList<Object>();

//I am creating Objects using reflection and adding it to list
_list.add(object);


//Now i have a Class object of a particular class say ToolRun and pass it as argument
public Object getObjectFromList(Class c){
  //this get function on list should find if list contains any Object of  
  //given Class name and retrieve it if found else should return null
  return _list.get(c.getCanonicalName()) }
List\u List=new ArrayList();
//我正在使用反射创建对象并将其添加到列表中
_列表。添加(对象);
//现在我有一个特定类的类对象,比如ToolRun,并将其作为参数传递
公共对象getObjectFromList(c类){
//list上的get函数应该查找list是否包含
//给定类名并在找到时检索,否则应返回null
return _list.get(c.getCanonicalName())}

如果对象属于给定类,则关键字instanceof
返回true

示例:

Student s = new Student();
System.out.ptinln(s instanceof Student);
输出:真

所以你可以这样做

List list = getList();
if(list.get(0) instanceof Student) {
 System.out.println("STUDENT");
} else if(list.get(0) instanceof Teacher) {
 System.out.println("TEACHER");
}

Java 8 aproach可以是:

    public List removeLastMovieWithGenre(List list, Class filterClazz){
       return (List) list.parallelStream()
            .filter(element -> filterClazz.isInstance(element))
            .collect(Collectors.toList());
    }

它返回一个带有参数类的对象子列表。

实际上,一些(伪)代码将有助于详细的正文和标题。您应该明确地尝试这样做:需要给出更多的细节吗?我不知道,downvoter应该将注释写为why down vote?有助于更好地发布,我现在在发布问题之前感觉很困难是的,这就像在列表中有很多对象的情况下进行循环一样,我在想是否有一些内置方法或解决方法可以直接获取对象。我不认为有任何内置方法用于此目的谢谢Ezequiel,它确实有帮助:)