SlideShare une entreprise Scribd logo
1  sur  22
Lists in Java
Part of the Collections Framework
Kinds of Collections
• Collection--a group of objects, called elements
– Set--An unordered collection with no duplicates
• SortedSet--An ordered collection with no duplicates
– List--an ordered collection, duplicates are allowed
• Map--a collection that maps keys to values
– SortedMap--a collection ordered by the keys
• Note that there are two distinct hierarchies
Using Collections
• import java.util.*
or import java.util.Collection;
• There is a sister class, java.util.Collections; that
provides a number of algorithms for use with
collections: sort, binarySearch, copy,
shuffle, reverse, max, min, etc.
Collections are interfaces
• Collection is actually an interface
• Each kind of Collection has one or more
implementations
• You can create new kinds of Collections
• When you implement an interface, you promise to
supply the required methods
• Some Collection methods are optional
– How can an interface declare an optional method?
Creating a Collection
• All Collection implementations should have two
constructors:
– A no-argument constructor to create an empty collection
– A constructor with another Collection as argument
• All the Sun-supplied implementations obey this
rule, but--
• If you implement your own Collection type, this
rule cannot be enforced, because an Interface
cannot specify constructors
Collection: Basic operations
int size( );
boolean isEmpty( );
boolean contains(Object element);
boolean add(Object element); // Optional
boolean remove(Object element); // Optional
Iterator iterator( );
Collection: Iterator
boolean hasNext( );
// true if there is another element
Object next( );
// returns the next element (advances the iterator)
void remove( ); // Optional
// removes the element returned by next
}
public interface Iterator {
Using an Iterator
• static void printAll (Collection coll) {
Iterator iter = coll.iterator( );
while (iter.hasNext( )) {
System.out.println(iter.next( ) );
}
}
• Note that this code is polymorphic--it will work
for any collection
Collection: Bulk operations
boolean containsAll(Collection c);
boolean addAll(Collection c); // Optional
boolean removeAll(Collection c); // Optional
boolean retainAll(Collection c); // Optional
void clear( ); // Optional
• addAll, removeAll, retainAll return true if the
object receiving the message was modified
Mixing Collection types
• Note that most methods, such as
boolean containsAll(Collection c);
are defined for any type of Collection, and take
any type of Collection as an argument
• This makes it very easy to work with different
types of Collections
singleton
• Collections.singleton(e) returns an
immutable set containing only the element e
• c.removeAll(Collections.singleton(e));
will remove all occurrences of e from the
Collection c
Collection: Array operations
• Object[ ] toArray( );
– creates a new array of Objects
• Object[ ] toArray(Object a[ ]);
– Allows the caller to provide the array
• Examples:
Object[ ] a = c.toArray( );
String[ ] a;
a = (String[ ]) c.toArray(new String[0]);
The List interface
• A List is ordered and may have duplicates
• Operations are exactly those for Collections
int size( );
boolean isEmpty( );
boolean contains(Object e);
boolean add(Object e);
boolean remove(Object e);
Iterator iterator( );
boolean containsAll(Collection c);
boolean addAll(Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);
void clear( );
Object[ ] toArray( );
Object[ ] toArray(Object a[ ]);
List implementations
• List is an interface; you can’t say new List ( )
• There are two implementations:
– LinkedList gives faster insertions and deletions
– ArrayList gives faster random access
• It’s poor style to expose the implementation, so:
• Good: List list = new LinkedList ( );
Bad: LinkedList list = new LinkedList ( );
Inherited List methods
• list.remove(e) removes the first e
• add and addAll add to the end of the list
• To append one list to another:
list1.addAll(list2);
• To append two lists into a new list:
List list3 = new ArrayList(list1);
list3.addAll(list2);
• Again, it's good style to hide the implementation
List: Positional access
Object get(int index); // Required --
// the rest are optional
Object set(int index, Object element);
void add(int index, Object element);
Object remove(int index);
abstract boolean addAll(int index, Collection c);
• These operations are more efficient with the ArrayList
implementation
List: Searching
int indexOf(Object o);
int lastIndexOf(Object o);
• equals and hashCode work even if
implementations are different
Interface List: Iteration
• Iterators specific to Lists:
ListIterator listIterator( );
ListIterator listIterator(int index);
– starts at the position indicated (0 is first element)
• Inherited methods:
boolean hasNext( );
Object next( );
void remove( );
• Additional methods:
boolean hasPrevious()
Object previous()
List: Iterating backwards
boolean hasPrevious( );
Object previous( );
int nextIndex( );
int previousIndex( );
• Think of the iterator as “between” elements
• Hence, next followed by previous gives you
the same element each time
List: More operations
• void add(Object o);
– Inserts an object at the cursor position
• Object set(Object o); // Optional
– Replace the current element; return the old one
• Object remove(int index); // Optional
– Remove and return the element at that position
List: Range-view
• List subList(int from, int to); allows you to
manipulate part of a list
• A sublist may be used just like any other list
The End
http://java.sun.com/docs/books/tutorial/collections
/interfaces/collection.html
http://java.sun.com/docs/books/tutorial/collections
/interfaces/list.html

Contenu connexe

Tendances

Collections In Java
Collections In JavaCollections In Java
Collections In JavaBinoj T E
 
Array vs array list
Array vs array listArray vs array list
Array vs array listRavi Shetye
 
Java collections
Java collectionsJava collections
Java collectionsAmar Kutwal
 
Collections Api - Java
Collections Api - JavaCollections Api - Java
Collections Api - JavaDrishti Bhalla
 
Java ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaJava ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaEdureka!
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets Hitesh-Java
 
5 collection framework
5 collection framework5 collection framework
5 collection frameworkMinal Maniar
 
Java collections concept
Java collections conceptJava collections concept
Java collections conceptkumar gaurav
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections frameworkRiccardo Cardin
 
Java Collection framework
Java Collection frameworkJava Collection framework
Java Collection frameworkankitgarg_er
 
Python advanced 3.the python std lib by example – algorithm
Python advanced 3.the python std lib by example – algorithmPython advanced 3.the python std lib by example – algorithm
Python advanced 3.the python std lib by example – algorithmJohn(Qiang) Zhang
 
Collections - Lists & sets
Collections - Lists & setsCollections - Lists & sets
Collections - Lists & setsRatnaJava
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in javaCPD INDIA
 

Tendances (20)

Collections In Java
Collections In JavaCollections In Java
Collections In Java
 
Array vs array list
Array vs array listArray vs array list
Array vs array list
 
Java collections
Java collectionsJava collections
Java collections
 
Collections Api - Java
Collections Api - JavaCollections Api - Java
Collections Api - Java
 
Array list(1)
Array list(1)Array list(1)
Array list(1)
 
Java ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaJava ArrayList Tutorial | Edureka
Java ArrayList Tutorial | Edureka
 
List
ListList
List
 
Java collection
Java collectionJava collection
Java collection
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets
 
5 collection framework
5 collection framework5 collection framework
5 collection framework
 
Collections framework
Collections frameworkCollections framework
Collections framework
 
Java collections concept
Java collections conceptJava collections concept
Java collections concept
 
Priority Queue
Priority QueuePriority Queue
Priority Queue
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
 
Java Collection framework
Java Collection frameworkJava Collection framework
Java Collection framework
 
Collections
CollectionsCollections
Collections
 
Python advanced 3.the python std lib by example – algorithm
Python advanced 3.the python std lib by example – algorithmPython advanced 3.the python std lib by example – algorithm
Python advanced 3.the python std lib by example – algorithm
 
Collections - Lists & sets
Collections - Lists & setsCollections - Lists & sets
Collections - Lists & sets
 
Collections in Java Notes
Collections in Java NotesCollections in Java Notes
Collections in Java Notes
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in java
 

En vedette

En vedette (13)

Moving to ws2003
Moving to ws2003Moving to ws2003
Moving to ws2003
 
Ch1
Ch1Ch1
Ch1
 
Us bdrv tips2
Us bdrv tips2Us bdrv tips2
Us bdrv tips2
 
Dna structure
Dna structureDna structure
Dna structure
 
Twar05003 win hec05
Twar05003 win hec05Twar05003 win hec05
Twar05003 win hec05
 
W982 05092004
W982 05092004W982 05092004
W982 05092004
 
Discoverer online training 10g r2
Discoverer online training 10g r2Discoverer online training 10g r2
Discoverer online training 10g r2
 
Tips tricks052003
Tips tricks052003Tips tricks052003
Tips tricks052003
 
9idwh
9idwh9idwh
9idwh
 
Sirt roundtable malicious-emailtrendmicro
Sirt roundtable malicious-emailtrendmicroSirt roundtable malicious-emailtrendmicro
Sirt roundtable malicious-emailtrendmicro
 
Ch03
Ch03Ch03
Ch03
 
Arc ims tips
Arc ims tipsArc ims tips
Arc ims tips
 
Swine flu f inal
Swine flu f inalSwine flu f inal
Swine flu f inal
 

Similaire à Lists

Similaire à Lists (20)

Collections
CollectionsCollections
Collections
 
Collections
CollectionsCollections
Collections
 
JavaCollections.ppt
JavaCollections.pptJavaCollections.ppt
JavaCollections.ppt
 
JavaCollections.ppt
JavaCollections.pptJavaCollections.ppt
JavaCollections.ppt
 
Best core & advanced java classes in mumbai
Best core & advanced java classes in mumbaiBest core & advanced java classes in mumbai
Best core & advanced java classes in mumbai
 
Collections and generics
Collections and genericsCollections and generics
Collections and generics
 
Collection framework
Collection frameworkCollection framework
Collection framework
 
javacollections.pdf
javacollections.pdfjavacollections.pdf
javacollections.pdf
 
Collections
CollectionsCollections
Collections
 
Collections in java
Collections in javaCollections in java
Collections in java
 
12_-_Collections_Framework
12_-_Collections_Framework12_-_Collections_Framework
12_-_Collections_Framework
 
collectionframework-141116005344-conversion-gate01.pptx
collectionframework-141116005344-conversion-gate01.pptxcollectionframework-141116005344-conversion-gate01.pptx
collectionframework-141116005344-conversion-gate01.pptx
 
Lecture 7- Iterator and for loop over arrays
Lecture 7- Iterator and for loop over arraysLecture 7- Iterator and for loop over arrays
Lecture 7- Iterator and for loop over arrays
 
COLLECTIONS.pptx
COLLECTIONS.pptxCOLLECTIONS.pptx
COLLECTIONS.pptx
 
Java util
Java utilJava util
Java util
 
collection framework.pptx
collection framework.pptxcollection framework.pptx
collection framework.pptx
 
Collection Framework-1.pptx
Collection Framework-1.pptxCollection Framework-1.pptx
Collection Framework-1.pptx
 
Collections (1)
Collections (1)Collections (1)
Collections (1)
 
Collection framework (completenotes) zeeshan
Collection framework (completenotes) zeeshanCollection framework (completenotes) zeeshan
Collection framework (completenotes) zeeshan
 
02._Object-Oriented_Programming_Concepts.ppt
02._Object-Oriented_Programming_Concepts.ppt02._Object-Oriented_Programming_Concepts.ppt
02._Object-Oriented_Programming_Concepts.ppt
 

Dernier

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxJisc
 

Dernier (20)

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 

Lists

  • 1. Lists in Java Part of the Collections Framework
  • 2. Kinds of Collections • Collection--a group of objects, called elements – Set--An unordered collection with no duplicates • SortedSet--An ordered collection with no duplicates – List--an ordered collection, duplicates are allowed • Map--a collection that maps keys to values – SortedMap--a collection ordered by the keys • Note that there are two distinct hierarchies
  • 3. Using Collections • import java.util.* or import java.util.Collection; • There is a sister class, java.util.Collections; that provides a number of algorithms for use with collections: sort, binarySearch, copy, shuffle, reverse, max, min, etc.
  • 4. Collections are interfaces • Collection is actually an interface • Each kind of Collection has one or more implementations • You can create new kinds of Collections • When you implement an interface, you promise to supply the required methods • Some Collection methods are optional – How can an interface declare an optional method?
  • 5. Creating a Collection • All Collection implementations should have two constructors: – A no-argument constructor to create an empty collection – A constructor with another Collection as argument • All the Sun-supplied implementations obey this rule, but-- • If you implement your own Collection type, this rule cannot be enforced, because an Interface cannot specify constructors
  • 6. Collection: Basic operations int size( ); boolean isEmpty( ); boolean contains(Object element); boolean add(Object element); // Optional boolean remove(Object element); // Optional Iterator iterator( );
  • 7. Collection: Iterator boolean hasNext( ); // true if there is another element Object next( ); // returns the next element (advances the iterator) void remove( ); // Optional // removes the element returned by next } public interface Iterator {
  • 8. Using an Iterator • static void printAll (Collection coll) { Iterator iter = coll.iterator( ); while (iter.hasNext( )) { System.out.println(iter.next( ) ); } } • Note that this code is polymorphic--it will work for any collection
  • 9. Collection: Bulk operations boolean containsAll(Collection c); boolean addAll(Collection c); // Optional boolean removeAll(Collection c); // Optional boolean retainAll(Collection c); // Optional void clear( ); // Optional • addAll, removeAll, retainAll return true if the object receiving the message was modified
  • 10. Mixing Collection types • Note that most methods, such as boolean containsAll(Collection c); are defined for any type of Collection, and take any type of Collection as an argument • This makes it very easy to work with different types of Collections
  • 11. singleton • Collections.singleton(e) returns an immutable set containing only the element e • c.removeAll(Collections.singleton(e)); will remove all occurrences of e from the Collection c
  • 12. Collection: Array operations • Object[ ] toArray( ); – creates a new array of Objects • Object[ ] toArray(Object a[ ]); – Allows the caller to provide the array • Examples: Object[ ] a = c.toArray( ); String[ ] a; a = (String[ ]) c.toArray(new String[0]);
  • 13. The List interface • A List is ordered and may have duplicates • Operations are exactly those for Collections int size( ); boolean isEmpty( ); boolean contains(Object e); boolean add(Object e); boolean remove(Object e); Iterator iterator( ); boolean containsAll(Collection c); boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); void clear( ); Object[ ] toArray( ); Object[ ] toArray(Object a[ ]);
  • 14. List implementations • List is an interface; you can’t say new List ( ) • There are two implementations: – LinkedList gives faster insertions and deletions – ArrayList gives faster random access • It’s poor style to expose the implementation, so: • Good: List list = new LinkedList ( ); Bad: LinkedList list = new LinkedList ( );
  • 15. Inherited List methods • list.remove(e) removes the first e • add and addAll add to the end of the list • To append one list to another: list1.addAll(list2); • To append two lists into a new list: List list3 = new ArrayList(list1); list3.addAll(list2); • Again, it's good style to hide the implementation
  • 16. List: Positional access Object get(int index); // Required -- // the rest are optional Object set(int index, Object element); void add(int index, Object element); Object remove(int index); abstract boolean addAll(int index, Collection c); • These operations are more efficient with the ArrayList implementation
  • 17. List: Searching int indexOf(Object o); int lastIndexOf(Object o); • equals and hashCode work even if implementations are different
  • 18. Interface List: Iteration • Iterators specific to Lists: ListIterator listIterator( ); ListIterator listIterator(int index); – starts at the position indicated (0 is first element) • Inherited methods: boolean hasNext( ); Object next( ); void remove( ); • Additional methods: boolean hasPrevious() Object previous()
  • 19. List: Iterating backwards boolean hasPrevious( ); Object previous( ); int nextIndex( ); int previousIndex( ); • Think of the iterator as “between” elements • Hence, next followed by previous gives you the same element each time
  • 20. List: More operations • void add(Object o); – Inserts an object at the cursor position • Object set(Object o); // Optional – Replace the current element; return the old one • Object remove(int index); // Optional – Remove and return the element at that position
  • 21. List: Range-view • List subList(int from, int to); allows you to manipulate part of a list • A sublist may be used just like any other list