Collections
From Suhrid.net Wiki
Jump to navigationJump to searchCollections
equals() and hashcode()
- Mainly used for storing and retrieving objects from hashed collections.
- First object's hashcode is used to figure out which hash bucket the object is in
- Then the equals() method is used to compare objects in the same hash bucket.
This means that:
- equal objects MUST have the same hashcode
- unequal objects can have the same (or different) hashcode (e.g. same bucket but objects are different)
- objects having different hashcodes MUST be unequal
Collections
There are four flavours of Collections:
- Sorted
- Unsorted
- Ordered -> Means that we can iterate through the collection in the same specific order every time. For e.g. all lists are ordered by index position. See example below:
package net.suhrid;
import java.util.*;
class Foo {
private String str;
public Foo(String str) {
this.str = str;
}
public String toString() {
return "Foo:" + str;
}
public int compareTo(Foo f) {
return str.compareTo(f.str);
}
}
public class HelloWorld {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("D");
list.add("A");
list.add("C");
list.add("B");
for(Iterator<String> iter = list.iterator(); iter.hasNext();) {
System.out.println(iter.next());
}
//Will print D,A,C,B each time
List<Foo> fooList = new ArrayList<Foo>();
fooList.add(new Foo("D"));
fooList.add(new Foo("A"));
fooList.add(new Foo("C"));
fooList.add(new Foo("B"));
for(Iterator<Foo> iter = fooList.iterator(); iter.hasNext();) {
System.out.println(iter.next());
}
//Will print Foo:D,Foo:A,Foo:C,Foo:B each time
}
}
- Unordered ->