【问题标题】:How to use instanceof operator of java here? [duplicate]这里如何使用 java 的 instanceof 操作符? [复制]
【发布时间】:2016-05-15 12:29:54
【问题描述】:

我正在 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 中的特殊字符组(如“###”)实例的答案。请帮我理解。抱歉,如果我在这里违反了任何规则。

【问题讨论】:

  • 对不起,但我之前已经浏览过那个线程并且无法理解如何在我的问题中使用 instanceof 运算符。你能帮忙吗?

标签: java operator-keyword instanceof


【解决方案1】:

此代码将Integer 实例和String 实例添加到相同的ArrayList

虽然您没有这么说,但 func 的目标似乎是返回一个 Iterator,它指向“###”元素之后的第一个 String 元素。因此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;

}

【讨论】:

  • 宾果游戏!那是正确的!我不敢相信我忽略了那里的细节!谢谢回答! :)
【解决方案2】:

ex of instanceof 运算符-- 导入 java.util.Enumeration; 导入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);
            }

        }


}

}

【讨论】:

    【解决方案3】:
    if(element instanceof String){
    

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

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 2023-03-19
      • 2015-10-07
      • 1970-01-01
      • 2019-10-12
      相关资源
      最近更新 更多