import
java.io.*;
import
java.util.HashMap;
import
java.util.IdentityHashMap;
import
java.util.Map;
class
ProgrammingLanguage {
private
String language;
private
Integer value;
public
ProgrammingLanguage(String language,
Integer value)
{
this
.language = language;
this
.value = value;
}
public
String getlanguage()
{
return
language;
}
public
Integer getValue()
{
return
value;
}
public
void
setValue(Integer value)
{
this
.value = value;
}
public
int
hashCode()
{
final
int
prime =
31
;
int
result =
1
;
result
= prime * result
+ ((language ==
null
) ?
0
: value.hashCode());
result
= prime * result
+ ((language ==
null
) ?
null
: language.hashCode());
return
result;
}
public
boolean
equals(Object obj)
{
if
(
this
== obj)
return
true
;
if
(obj ==
null
)
return
false
;
if
(getClass() != obj.getClass())
return
false
;
ProgrammingLanguage other
= (ProgrammingLanguage)obj;
if
(value ==
null
) {
if
(other.value !=
null
)
return
false
;
}
else
if
(!value.equals(other.value))
return
false
;
if
(language ==
null
) {
if
(other.language !=
null
)
return
false
;
}
else
if
(!language.equals(other.language))
return
false
;
return
true
;
}
}
public
class
GFG {
public
static
void
main(String[] args)
{
ProgrammingLanguage groovy
=
new
ProgrammingLanguage(
"Groovy"
,
1000
);
ProgrammingLanguage scala
=
new
ProgrammingLanguage(
"Scala"
,
2000
);
ProgrammingLanguage ruby
=
new
ProgrammingLanguage(
"Ruby"
,
3000
);
Map<ProgrammingLanguage, Integer> languageValue
=
new
HashMap<>();
Map<ProgrammingLanguage, Integer>
languageValueIdentity =
new
IdentityHashMap<>();
languageValue.put(groovy, groovy.getValue());
languageValue.put(scala, scala.getValue());
languageValue.put(ruby, ruby.getValue());
languageValueIdentity.put(groovy,
groovy.getValue());
languageValueIdentity.put(scala, scala.getValue());
languageValueIdentity.put(ruby, ruby.getValue());
System.out.println(
"Before modifying keys : "
);
String result = languageValue.get(groovy) !=
null
?
"Yes"
:
"No"
;
System.out.println(
"Does Groovy language exists in HashMap? "
+ result);
result = languageValueIdentity.get(groovy) !=
null
?
"Yes"
:
"No"
;
System.out.println(
"Does Groovy language in IdentityHashMap? "
+ result);
groovy.setValue(
5000
);
System.out.println(
"After modifying keys : "
);
result = languageValue.get(groovy) !=
null
?
" Yes "
:
" No "
;
System.out.println(
"Does Groovy language exists in HashMap? "
+ result);
result = languageValueIdentity.get(groovy) !=
null
?
" Yes "
:
" No "
;
System.out.println(
"Does Groovy language exists in IdentityHashMap? "
+ result);
}
}