Java Reference
In-Depth Information
System.out.print(s+" ");
System.out.println();
}
}
The List<String> ls = new ArrayList<>(); assignment reveals a
couple of items to note:
• I've declared variable ls to be of List<String> interface type, and have
assigned to this variable a reference to an instance of the ArrayList class
thatimplementsthisinterface.WhenworkingwiththeCollectionsFramework,
it is common practice to declare variables to be of interface type. Doing so
eliminates extensive code changes when you need to work with a different
implementation class; for example, List<String> ls = new
LinkedList<>(); . Check out Chapter 2 's “Why Use Interfaces?” section
for more information about this practice.
• The diamond operator <> (whichisnewinJava7)reducesverbositybyforcing
the compiler to infer actual type arguments for the constructors of generic
classes. Without this operator, I would need to specify String as the actu-
al type argument passed to ArrayList<E> , resulting in the more verbose
List<String> ls = new ArrayList<String>(); instead of the
shorter List<String> ls = new ArrayList<>(); .(Idon'tregardthe
diamondoperatorasatrueoperator,whichiswhyIdon'tincludeitin Chapter
1 ' s table of operators— Table 1-3 .)
The dump() method's enhanced for statement uses iterator() , hasNext() ,
and next() behind the scenes.
When you run this application, it generates the following output:
ls: Sun Mon Tue Wed Thu Fri Sat
ls: Sun Mon Tue Wednesday Thu Fri Sat
ls: Sun Mon Tue Wednesday Thu Sat
LinkedList
The LinkedList class provides a list implementation that is based onlinked nodes.
Becauselinksmustbetraversed,accesstothelist'selementsisslow.However,because
onlynodereferencesneedtobechanged,insertionsanddeletionsofelementsisfast.(I
will introduce you to nodes later in this chapter.)
LinkedList supplies two constructors:
Search WWH ::




Custom Search