<< 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.

Back to Question 3

Answer 2

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

Back to Question 2

Answer 1

True.

Back to Question 1

Complete program listing

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

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Java4150r: Review
  • File: Java4150r.htm
  • Published: 12/04/13
Disclaimers:

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-

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask