如何在这里使用 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){
.......
}
这应该会给你预期的输出。
我正在 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){
....... } 这应该会给你预期的输出。