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

时间:2016-05-15 12:29:55

标签: java operator-keyword instanceof

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

链接: 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中特殊字符组(如“###”)实例的答案。请帮我理解。对不起,如果我违反了任何规则。

3 个答案:

答案 0 :(得分:1)

此代码将String个实例后跟ArrayList个实例添加到同一func

虽然您没有这么说,但Iterator的目标似乎是返回指向&#34后面的第一个String元素的func;# ##&#34;元件。因此ArrayList应该遍历String的元素,直到遇到String实例,这将是&#34; ###&#34; static Iterator func(ArrayList mylist) { Iterator it=mylist.iterator(); while(it.hasNext()) { Object element = it.next(); if(element instanceof String) break; } return it; }

listWithObjs

答案 1 :(得分:1)

运营商的例子 - import java.util.Enumeration; import java.util.Vector;

公共类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);
            }

        }


}

}

答案 2 :(得分:1)

if(element instanceof String){

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