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

407 lines
6.8 KiB
Plaintext
Raw Permalink Normal View History

2024-08-31 02:13:09 -05:00
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