0% found this document useful (0 votes)
135 views

Collections With Exercise

Here are solutions to the exercises: Exercise 1: 1. Create a Student class with name and age fields 2. Create an ArrayList to store Student objects 3. Add some Student objects to the ArrayList 4. Iterate through the ArrayList and print details of Students with age > 10 Exercise 2: 1. Get command line input as a String 2. Convert to uppercase 3. Count frequency of each letter in a HashMap<Character, Integer> 4. Iterate HashMap and print vertical bar chart
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
135 views

Collections With Exercise

Here are solutions to the exercises: Exercise 1: 1. Create a Student class with name and age fields 2. Create an ArrayList to store Student objects 3. Add some Student objects to the ArrayList 4. Iterate through the ArrayList and print details of Students with age > 10 Exercise 2: 1. Get command line input as a String 2. Convert to uppercase 3. Count frequency of each letter in a HashMap<Character, Integer> 4. Iterate HashMap and print vertical bar chart
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

Collections

Java Collections Framework, List, Map

© Amir Kirsh
Collections Overview

Collection classes in Java are containers


of Objects which by polymorphism can
hold any class that derives from Object
(which is actually, any class)

Using Generics the Collection classes can


be aware of the types they store

2
Collections

Java collections refer to a collection of individual objects


that are represented as a single unit. You can
perform all operations such as searching, sorting,
insertion, manipulation, deletion, etc., on Java
collections just like you do it on data.
A Java collection framework provides an architecture to
store and manipulate a group of objects. A Java
collection framework includes the following:
• Interfaces
• Classes
• Algorithm
Need for Java Collection Framework

• Reducing the effort required to write the code by


providing useful data structures and algorithms
• Java collections provide high-performance and high-
quality data structures and algorithms thereby
increasing the speed and quality
• Unrelated APIs can pass collection interfaces back
and forth
• Decreases extra effort required to learn, use, and
design new API’s
• Supports reusability of standard data structures and
algorithms
Which Collections do we have?

There are two main interfaces for all the collection


types in Java:
– Collection<E>
– Map<K,V>

List of all Collections and related frameworks:

http://java.sun.com/javase/6/docs/technotes/guides/collections/ref
erence.html

5
Java Collection Framework
Iterator and Collection interface

Methods in Iterator interface


• hasNext()
• next()
• remove()

Methods in collection interface include–


• Add – add(), addAll()
• Remove – remove(), removeAll(), retailAll(),…
• check the presence of elements from the collection – contains(),
containsAll()
List

List interface is the child interface of Collection interface. It


inhibits a list type data structure in which we can store the
ordered collection of objects. It can have duplicate values.
List interface is implemented by the classes ArrayList
(dynamic array non synchronized), LinkedList
(implemented using doubly linked list), Vector (dynamic
array sunchronized), and Stack.
To instantiate the List interface, we must use :
Vector

Vector is a synchronized dynamically growable array


with efficient access by index

Example: initialCapacity is optional


Vector<Integer> vec =
new Vector<Integer>(10/*initialCapacity*/);
vec.add(7);

Vector is an old (Java 1.0) container and is less in use today,


replaced mainly by ArrayList (Java 1.2) which is not synchronized

9
ArrayList

ArrayList is a non-synchronized dynamically


growable array with efficient access by index

Example: initialCapacity is optional


ArrayList<Integer> arr =
new ArrayList<Integer>(10/*initialCapacity*/);
arr.add(7);

ArrayList is in fact not a list (though implementing the List interface)


If you need a list use the LinkedList class!
When performing many
How should I know? adds and removes

10
String s = (String) itr.next();
System.out.println(s);
Example ArrayList

1st Example:
static public void main(String[] args) {
ArrayList argsList = new ArrayList();
for(String str : args) {
argsList.add(str);
}
if(argsList.contains("Koko") {
System.out.println("We have Koko");
}
String first = (String)argsList.get(0);
System.out.println("First: " + first);
}

12
Example ArrayList

2nd Example – now with Generics:


static public void main(String[] args) {
ArrayList<String> argsList =
new ArrayList<String>();
for(String str : args) {
argsList.add(str); // argsList.add(7) would fail
}
if(argsList.contains("Koko") {
System.out.println("We have Koko");
}
String first = argsList.get(0); // no casting!
System.out.println("First: " + first);
}

13
HashMap
HashMap is a non-synchronized key-value Hashtable

Example 1:
HashMap<String, Person> id2Person;
...
Person p = id2Person.get("021212121");
if(p != null) {
System.out.println("found: " + p);
}

HashMap is a Java 1.2 class.


There is a similar Java 1.0 class called Hashtable which is
synchronized and is less used today

14
HashMap

Example 2:
HashMap<String, Integer> frequency(String[] names) {
HashMap<String, Integer> frequency =
new HashMap<String, Integer>();
for(String name : names) {
Integer currentCount = frequency.get(name);
if(currentCount == null) {
currentCount = 0; // auto-boxing
}
frequency.put(name, ++currentCount);
}
return frequency;
}

15
HashMap

Example 2 (cont’):
public static void main(String[] args) {
System.out.println( (
(
frequency(new String[]{
"Momo", "Momo", "Koko", "Noa", "Momo", "Koko"
) )
}).toString());
}
HashMap has a nice toString!
Print out of this main is:
{Koko=2, Noa=1, Momo=3}
HashMap doesn’t
guarantee any order!

16
HashMap

For a class to properly serve as a key in HashMap


the equals and hashCode methods should both be
appropriately implemented

Example:
Parameter MUST be Object
public class Person {
public String name; (and NOT Person!)
boolean equals(Object o) {
return (o instanceof Person &&
((Person)o).name.equals(name));
}
public int hashCode() {
return name.hashCode();
}
}
17
Hash Map Example Traversal
19
20
Exercise 1

Create an ArrayList of Student objects (Name, Age) and


display the objects with age greater than 10.

21
Exercise 2

Get Strings from the command line, present in the console a


vertical bar chart of the frequency of each letter in the input.
• Treat small and capital letters the same -- as capital
• Ignore any char that is not an English letter

Example
For the following input: Hey how are you?
we expect the following chart:
A #
E ##
H ##
O ##
R #
Y ##
U #
W #

22

You might also like