college/Summer-2024/CS-3443/Slides/txt/26_Java Collections.txt

407 lines
6.8 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Application
Programming
Hend Alkittawi
03
Java Collections
Collections are Javas Data
Structures
JAVA COLLECTIONS
-
In Java, Collection is an interface. It is the root interface in
the collection hierarchy. A collection represents a group of
objects, known as its elements.
-
Some collections allow duplicate elements and others do not.
Some are ordered and others unordered.
-
The java.util package contains many Java collections, a few of
the most common are
-
List
-
Set
-
Map
JAVA COLLECTIONS
-
The Collection interface defines the behaviors of a collection,
including typical operations such as
-
add elements to the collection
.add()
-
access elements of the collection
.get()
-
loop over the elements in the collection
iterator
-
access an element by its index, if applicable
iterator
-
test whether an element is contained in the collection
.contains()
-
find out the size of the collection
.size()
-
remove elements from the collection
.remove()
JAVA COLLECTIONS HISTORY
-
JDK 1.0: Vector, Dictionary, Hashtable, Stack, Enumeration
-
JDK 1.2: Collection, Iterator, List, Set, Map, ArrayList,
HashSet, TreeSet, HashMap, WeakHashMap
-
JDK 1.4: RandomAccess, IdentityHashMap, LinkedHashMap,
LinkedHashSet
-
JDK 1.5: Queue, …
-
JDK 1.6: Deque, ConcurrentSkipListSet/Map, …
-
JDK 1.7: TransferQueue, LinkedTransferQueue
JAVA COLLECTIONS AND GENERICS
-
Leveraging generics when initializing a collection is a common
practice.
-
Typically, a collection is declared by including the type of
elements it contains within <...>, which is using Java's
generics notation.
-
For example
// declare list to be a collection of Strings
Collection<String> list;
// initialize list to a concrete class that implements Collection
list = new ArrayList<String>();
JAVA LISTS
-
The List interface represents an ordered collection (also
known as a sequence).
-
Some of the classes that implement the List interface are
-
ArrayList which is a resizable-array implementation of the
List interface.
-
LinkedList which is a doubly-linked list implementation of the
List and Deque interfaces.
JAVA LISTS
-
An example for using a LinkedList
List<String> colorList = new LinkedList<String>();
colorList.add("red");
colorList.add("yellow");
colorList.add("blue");
JAVA SETS
-
The Set interface represents a collection that contains no
duplicate elements.
-
Some of the classes that implement the List interface are
-
HashSet
-
TreeSet
JAVA SETS
-
An example for using a HashSet
String[] colors = {"red","white","blue","green","gray","orange","tan","white","cyan","peach","gray","orange"};
List<String> list = Arrays.asList(colors);
System.out.printf("List: %s%n", list);
prints …
This Arrays class contains various methods for
manipulating arrays (such as sorting and searching).
This class also contains a static factory that allows
arrays to be viewed as lists.
List: [red, white, blue, green, gray, orange, tan, white, cyan, peach, gray, orange]
String[] colors = {"red","white","blue","green","gray","orange","tan","white","cyan","peach","gray","orange"};
List<String> list = Arrays.asList(colors);
Set<String> set = new HashSet<String>(list);
System.out.printf("Set: %s%n", set);
prints …
Set: [tan, green, peach, cyan, red, orange, gray, white, blue]
JAVA MAPS
-
The Map interface represents an object that maps keys to values. A
map cannot contain duplicate keys; each key can map to at most one
value.
-
Some of the classes that implement the List interface are
-
HashMap
-
TreeMap
JAVA MAPS
-
An example for using a HashMap
// Not using maps, maintain two arrays, one for names and one for IDs
String[] studentNames = {"Alice", "Bob", "Carlos", "Diane"};
String[] studentIDs = {"atf123", "ght456", "liw789", "pwt012"};
// then to print out Alice, we need to know she is at index 0
System.out.println( studentIDs[0] );
// Instead, use a map!
Map<String,String> classMap = new HashMap<String,String>();
classMap.put("atf123", "Alice");
//As students register for the class,
classMap.put("ght456", "Bob");
// you can add them to the map. Then to
classMap.put("liw789", "Carlos");
// retrieve them, you only need their ID.
classMap.put("pwt012", "Diane");
System.out.println( classMap.get("atf123") );
JAVA MAPS
-
Another example for using a HashMap
// Phone book implementation
Map<String,PhoneNumber> phoneBook = new HashMap<String,PhoneNumber>();
phoneBook.put("Alice", new PhoneNumber("210-555-1234"));
phoneBook.put("Bob", new PhoneNumber("210-555-4321"));
phoneBook.put("Carlos", new PhoneNumber("210-555-4444"));
phoneBook.put("Diane", new PhoneNumber("210-555-1111"));
System.out.println( phoneBook );
public class PhoneNumber{
private String number;
public PhoneNumber( String phoneNumber ){
this.number = phoneNumber;
}
prints …
}
@Override
public String toString() {
return "PhoneNumber [number=" + number + "]";
}
{Bob=PhoneNumber [number=210-555-4321], Alice=PhoneNumber [number=210-555-1234], Diane=PhoneNumber [number=210-555-1111],
Carlos=PhoneNumber [number=210-555-4444]}
JAVA MAPS
-
Another example for using a HashMap
Map<String, ArrayList<String>> states = new HashMap<String,ArrayList<String>>();
ArrayList<String> tx = new ArrayList<String>();
tx.add( "San Antonio" );
tx.addAll( Arrays.asList("Austin", "Dallas", "Corpus Christi", "El Paso") );
states.put("Texas", tx );
ArrayList<String> ny = new ArrayList<String>();
ny.addAll( Arrays.asList("NYC", "Albany", "Niagara", "Long Island") );
states.put("New York", ny );
System.out.println( states );
prints …
{New York=[NYC, Albany, Niagara, Long Island], Texas=[San Antonio, Austin, Dallas, Corpus Christi, El Paso]}
CLASS ACTIVITY
-
What collection types would you use in the following examples?
-
A phone book (name, phone number)
-
Storing user interaction history (clicks, actions, choices, etc)
-
An address book (name, phone number, address, etc)
-
User choices for character attributes in a game (hair color, shoes,
etc)
-
Ordered task manager
CLASS ACTIVITY
-
What collection types would you use in the following examples?
-
A phone book (name, phone number)
-
-
Storing user interaction history (clicks, actions, choices, etc)
-
-
List
An address book (name, phone number, address, etc)
-
-
Map
Map
User choices for character attributes in a game (hair color, shoes,
etc)
-
-
Set
Ordered task manager
-
List
CLASS ACTIVITY
-
Come up with 3 distinct applications that
-
Require a List
-
Require a Set
-
Require a Map
CLASS ACTIVITY
-
Come up with 3 distinct applications that
-
Require a List
-
Groceries list/High scores/List of images/To do
list/Assignments/Labs
-
Require a Set
-
Enrollment UTSA/Census/UTSA IDs/Grocery list!/Medical
files/Word count
-
Require a Map
-
Login info/UTSA schedule/Dictionary/Word count/parking spots
DO YOU HAVE ANY
QUESTIONS?
THANK
YOU!
@
hend.alkittawi@utsa.edu
By Appointment
Online