題目描述
Java的instanceof運算子被用來測試一個物件是不是屬於某個類別型態。
在這個題目中,有Student、Rockstar和Hacker這三個類別。在main方法中使用一個ArrayList物件來儲存這些類別實體化出來的物件,count方法要計算出在ArrayList物件中每個類別物件的數量。
原題網址
輸入格式
5
Student
Student
Rockstar
Student
Hacker
Student
Student
Rockstar
Student
Hacker
輸出格式
3 1 1
解題概念
利用instanceof運算子來完成物件的類別型態判斷。
參考答案
import java.util.*;
class Student{}
class Rockstar{}
class Hacker{}
public class InstanceOFTutorial
{
static String count(ArrayList mylist)
{
int a=0,b=0,c=0;
for(int i=0;i<mylist.size();i++)
{
Object element=mylist.get(i);
if(element instanceof Student)
a++;
if(element instanceof Rockstar)
b++;
if(element instanceof Hacker)
c++;
}
String ret= Integer.toString(a)+" "+ Integer.toString(b)+" "+ Integer.toString(c);
return ret;
}
public static void main(String []argh)
{
ArrayList mylist=new ArrayList();
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
for(int i=0;i<t;i++)
{
String s=sc.next();
if(s.equals("Student"))mylist.add(new Student());
if(s.equals("Rockstar"))mylist.add(new Rockstar());
if(s.equals("Hacker"))mylist.add(new Hacker());
}
System.out.println(count(mylist));
}
}