題目描述

Java的instanceof運算子被用來測試一個物件是不是屬於某個類別型態。



在這個題目中,有Student、Rockstar和Hacker這三個類別。在main方法中使用一個ArrayList物件來儲存這些類別實體化出來的物件,count方法要計算出在ArrayList物件中每個類別物件的數量。

原題網址

https://www.hackerrank.com/challenges/java-instanceof-keyword

輸入格式

5
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));
   }
}