Along with generics and enumerations, Java 5 acquired a new for loop befitting (especially) the new generics stuff. It's a kind of foreach construct you've seen in other languages such as bash. Here I give a rather good example.
In terms of beginning Java samples you have:
In the example below, DvdCreateTestTitles.main() creates 4 serializations of objects of type DvdTitle for test purposes within a larger application. Inside DvdCreateTestTitles.java, titlenames is defined:
public static ArrayList< String > titlenames = new ArrayList< String >();
public static void main( String[] args )
{
DvdTitle title = null;
ArrayList< DvdTitle > titles = new ArrayList<>();
DvdCreateTestTitles.main( null );
for( String aTitle : DvdCreateTestTitles.titlenames )
{
try
{
title = loadTitleFromFile( aTitle );
}
catch( FileNotFoundException e )
{
log.error( "Failed to find "
+ aTitle
+ "\n"
+ e.getMessage() );
}
catch( IOException e )
{
log.error( "IOException occurred loading from "
+ aTitle
+ "\n"
+ e.getMessage() );
}
.
.
.
titles.add( title );
.
.
.
}
This is the same as we used to do like this:
public static void main( String[] args )
{
ArrayList< DvdTitle > titles = new ArrayList< DvdTitle >();
DvdCreateTestTitles.main( null );
for( int i = 0; i < DvdCreateTestTitles.titlenames.size(); i++ )
{
String aTitle = DvdCreateTestTitles.titlenames.get( i );
.
.
.
}
—more elegant, I think.