如何在这里使用 java 的 instanceof 运算符?

How to use instanceof operator of java here?

我正在 Hackerrank 中解决这个问题。如何在 Java 中使用 instanceof 运算符来成功编译代码?

Link : https://www.hackerrank.com/challenges/java-iterator

不完整的代码:

import java.util.*;
public class Main
{
static Iterator func(ArrayList mylist)
{
  Iterator it=mylist.iterator();
  while(it.hasNext())
  {
     Object element = it.next();
     if(~~Complete this line~~)//Hints: use instanceof operator
        break;
  }
  return it;

}

public static void main(String []argh)
{
  ArrayList mylist = new ArrayList();
  Scanner sc=new Scanner(System.in);
  int n=sc.nextInt();
  int m=sc.nextInt();
  for(int i=0;i<n;i++)
  {
     mylist.add(sc.nextInt());
  }
  mylist.add("###");
  for(int i=0;i<m;i++)
  {
     mylist.add(sc.next());
  }


  Iterator it=func(mylist);
  while(it.hasNext())
  {
     Object element = it.next();
     System.out.println((String)element);
  }

 }
}

尽管我使用 if(element == "###") 完成了它,但请指导我如何在那个地方使用 instanceof 运算符。

编辑:该线程无法提供有关如何使用 instanceof 运算符检查 ArrayList 中特殊字符组(如“###”)的实例的答案。请帮助我理解。对不起,如果我违反了这里的任何规则。

此代码将添加 Integer 个实例,然后将 String 个实例添加到相同的 ArrayList

虽然你没有这么说,但 func 的目标似乎是 return 指向第一个 String 元素的 Iterator ###“ 元素。因此 func 应该迭代 ArrayList 的元素,直到它遇到一个 String 实例,这将是“###” String.

static Iterator func(ArrayList mylist)
{
  Iterator it=mylist.iterator();
  while(it.hasNext())
  {
     Object element = it.next();
     if(element instanceof String)
        break;
  }
  return it;

}

ex instanceof 运算符-- 导入 java.util.Enumeration; 导入 java.util.Vector;

public class VecReplace {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Vector vector=new Vector();

        vector.add(0, 10);
        vector.add(1, "xyz");
        vector.add(2, 30);
        vector.add(3, 40);
        System.out.println(vector);

        vector.set(3, "abc");
        System.out.println(vector);

        Enumeration e=vector.elements();
        while(e.hasMoreElements())
        {
            Object o=e.nextElement();
            if(o instanceof Integer)
            {
                Integer i=(Integer) o;

                System.out.println(i);
            }

        }


}

}

if(element instanceof String){

....... } 这应该会给你预期的输出。