<< Chapter < Page | Chapter >> Page > |
" The returned array will be "safe" in that no references to it are maintained by this collection. ... The caller is thus free to modify thereturned array."
Note, however, that there is still some danger that you need to be aware of, and you must use caution when using the contents of the array.
The program shown in Listing 1 produces the output shown in Figure 1 .
Figure 1 . Answer 2. |
---|
Collection contents
B0 B1 L2 B3 B4 L5New array contents
B0 B1 L2 B3 B4 L5Modified array contents
XX B1 L2 B3 B4 L5Collection contents
XX B1 L2 B3 B4 L5 |
True.
Listing 1 . ToArray01.java. |
---|
//File ToArray01.java
//Copyright 2001, R.G.Baldwinimport java.util.*;
import javax.swing.*;public class ToArray01{
public static void main(String args[]){
new Worker().doIt();}//end main()
}//end class ToArray01//===================================//
class Worker{public void doIt(){
Collection ref;//Create, populate, and display the
// contents of a collectionref = new LinkedList();
Populator.fillIt(ref);System.out.println("Collection contents");
showCollection(ref);//Get collection contents into the
// array and display the new// contents of the array.
Object[]array = ref.toArray();
System.out.println("New array contents");showArray(array);
//Modify a property of an object// referred to by one of the
// elements in the array. Display// array contents after
// modificationSystem.out.println("Modified array contents");
((JComponent)array[0]).setToolTipText("XX");
showArray(array);//Display the contents of the
// collectionSystem.out.println("Collection contents");
showCollection(ref);}//end doIt()
//-----------------------------------////Utility method for displaying
// array contentsvoid showArray(Object[] array){for(int i = 0; i<array.length;i++){
if(array[i]== null){
System.out.print("null ");}else{
System.out.print(((JComponent)array[i]).
getToolTipText() + " ");}//end else
}//end for loopSystem.out.println();
}//end showArray()//-----------------------------------//
//Utility method for displaying// collection contents
void showCollection(Collection ref){Iterator iter = ref.iterator();
while(iter.hasNext()){System.out.print(((JComponent)iter.next()).
getToolTipText() + " ");}//end while loop
System.out.println();}//end showCollection
}// end class Worker//===================================//
class Populator{public static void fillIt(Collection ref){
ref.add(new JButton());ref.add(new JButton());
ref.add(new JLabel());ref.add(new JButton());
ref.add(new JButton());ref.add(new JLabel());
Iterator iter = ref.iterator();int cnt = 0;
JComponent refVar;while(iter.hasNext()){
refVar = (JComponent)iter.next();if(refVar instanceof JButton){refVar.setToolTipText("B"+cnt++);
}else{refVar.setToolTipText("L" + cnt++);
}//end else}//end while loop
}//end fillIt()}//end class Populator |
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download aPDF file for this module at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, youshould be aware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version ofthe module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale onAmazon.com showing me as the author. I neither receive compensation for those sales nor do I know who does receive compensation. If youpurchase such a book, please be aware that it is a copy of a module that is freely available on cnx.org and that it was made andpublished without my prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?