10
Exercise 2:
1. Get command line input as a String
2. Convert to uppercase
3. Count frequency of each letter in a HashMap Collections With Exercise Collections With Exercise © Amir Kirsh 2 http://java.sun.com/javase/6/docs/technotes/guides/collections/ref 5 9 10 1st Example: 12 13 Example 1: 14 Example 2: 15 Example 2 (cont’): 16 Example: 21 Example 22Uploaded by
kokkanti.pranathi2022Uploaded by
kokkanti.pranathi2022Collections
Java Collections Framework, List, Map
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
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:
erence.html
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 indexExample: 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
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
String s = (String) itr.next();
System.out.println(s);
Example ArrayList
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);
}
Example ArrayList2nd 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);
}
HashMap
HashMap is a non-synchronized key-value Hashtable
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
HashMap
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;
}
HashMap
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!
HashMap For a class to properly serve as a key in HashMap
the equals and hashCode methods should both be
appropriately implemented
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.
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
For the following input: Hey how are you?
we expect the following chart:
A #
E ##
H ##
O ##
R #
Y ##
U #
W #You might also like