Difference between revisions of "Collections"

From Suhrid.net Wiki
Jump to navigationJump to search
(Created page with "'''Collections''' <u>equals() and hashcode() </u> * Mainly used for storing and retrieving objects from hashed collections. * First object's hashcode is used to figure out whic...")
 
Line 11: Line 11:
 
* unequal objects can have the same (or different) hashcode (e.g. same bucket but objects are different)
 
* unequal objects can have the same (or different) hashcode (e.g. same bucket but objects are different)
 
* objects having different hashcodes MUST be unequal
 
* objects having different hashcodes MUST be unequal
 +
 +
<u> Collections </u>
 +
 +
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:
 +
 +
<syntaxhighlight lang="java">
 +
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
 +
}
 +
}
 +
</syntaxhighlight>
 +
 +
# Unordered ->
  
 
[[Category:OCPJP]]
 
[[Category:OCPJP]]

Revision as of 00:22, 24 May 2011

Collections

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:

  1. Sorted
  2. Unsorted
  3. 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
	}
}
  1. Unordered ->