Essa publicação é só para explicar um objeto simples (mas que eu não conhecia) chamado instanceof
. A sua tradução para português seria “é um” ou “é uma” e é usado como um construtor/identificador.
Neste problema do HackerRank, ele pede para que, em três linhas, você consiga dizer que um element
é Student
, Rockstar
ou Hacker
. Como já existem essas classes declaradas, basta escrevermos dentro do if
que cada um desses elementos é uma dessas classes.
=========
Sendo assim, o que é implementado dessa forma:
if(element instanceof Student)a++;if(element instanceof Rockstar)b++;if(element instanceof Hacker)c++;if(element instanceof Student) a++; if(element instanceof Rockstar) b++; if(element instanceof Hacker) c++;if(element instanceof Student) a++; if(element instanceof Rockstar) b++; if(element instanceof Hacker) c++;
Enter fullscreen mode Exit fullscreen mode
Pode ser também lido dessa forma:
if(element é um Student)a++;if(element é um Rockstar)b++;if(element é um Hacker)c++;if(element é um Student) a++; if(element é um Rockstar) b++; if(element é um Hacker) c++;if(element é um Student) a++; if(element é um Rockstar) b++; if(element é um Hacker) c++;
Enter fullscreen mode Exit fullscreen mode
=========
O código final fica assim:
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 []args){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));}}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 []args){ 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)); } }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 []args){ 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)); } }
Enter fullscreen mode Exit fullscreen mode
=========
Referências
- Instanceof : Guj
- Instanceof : Oracle
============
Essa publicação faz parte de uma série de exercícios resolvidos em Java no HackerRank. Acesse a série completa:
- HackerRank #6 | Scanner e End-of-file
- HackerRank #7 | Int to String / String to Int
- HackerRank #8 | Date and Time
- HackerRank #9 | Static Initializer Block
- HackerRank #10 | Currency Formatter
- HackerRank #11 | DataTypes
- HackerRank #12 | Strings Introduction
- HackerRank #13 | Substring Comparisons
- HackerRank #14 | Abstract Class
- HackerRank #18 | BigInteger
- HackerRank #19 | Loops II
- HackerRank #20 | String Reverse
- HackerRank #23 | Instanceof keyword
- HackerRank #26 | Generics
- HackerRank #27 | 1D Array
- HackerRank #28 | Anagrams
- HackerRank #33 | Arraylist
- HackerRank #34 | Exception Handling Try / Catch
- HackerRank #36 | Exception Handling
- HackerRank #37 | List
- HackerRank #38 | SubArray
- HackerRank #39 | HashSet
- HackerRank #40 | Java Dequeue
暂无评论内容