Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyClass {
- private int x;
- public MyClass(int n) { x = n; }
- public boolean equals(Object o) { return false; }
- public boolean equals(MyClass mc) { return x == mc.x; }
- public static void main(String[] args) {
- List<MyClass> list = new ArrayList<MyClass>();
- list.add(new MyClass(3));
- System.out.println("Contains 3? " + list.contains(new MyClass(3)));
- }
- }
- public boolean equals(Object o) {
- if(!(o instanceof MyClass))
- return false;
- MyClass mc = (MyClass)o;
- return x == mc.x;
- }
- boolean contains(Object o)
- Returns true if this list contains the specified element.
- boolean contains(E o)
- Returns true if this list contains the specified element.
- private transient Object elementData[];
- public boolean contains(Object elem) {
- return indexOf(elem) >= 0;
- }
- public int indexOf(Object elem) {
- if (elem == null) {
- for (int i = 0; i < size; i++)
- if (elementData[i]==null)
- return i;
- } else {
- for (int i = 0; i < size; i++)
- if (elem.equals(elementData[i]))
- return i;
- }
- return -1;
- }
- class A{
- public int content;
- A(){
- this(0);
- }
- A(int value){
- content = value;
- }
- public boolean equals(Object obj){
- System.out.println("overriding equals method");
- return this.content == ((A) obj).content;
- }
- public boolean equals(A a){
- System.out.println("overloading equals method");
- return this.content == a.content;
- }
- public static void main(String[] args){
- A x = new A(1);
- A y = new A(2);
- Object z = new A(1);
- System.out.println(x.equals(y));
- System.out.println(x.equals(x));
- System.out.println(x.equals(z));
- //override as z is declared as Object at compile time
- //so it will use methods in class Object instead of class A
- System.out.println(x.equals((Object) y));
- System.out.println(x.equals((Object) x));
- }
- }
- //rant: they didn't teach me these in javaschool and I had to learn it the hard way.
Add Comment
Please, Sign In to add comment