1 Java intro Part 3. 2 Arrays in Java Store fixed number of values of a given type Arrays are...

24
1 Java intro Part 3
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    266
  • download

    0

Transcript of 1 Java intro Part 3. 2 Arrays in Java Store fixed number of values of a given type Arrays are...

1

Java intro

Part 3

2

Arrays in Java

• Store fixed number of values of a given type

• Arrays are objects– have attributes– must be constructed

• Array declaration:data type [] name = new data type[int expression];

3

Arrays in Java

• Elements in a new array are automatically set to 0, false, or null (depending on the underlying data type)

• Size of an array is stored in its length attribute; example:int [] numbers = new int [100];

int size = numbers.length; // stores 100 in size

4

Arrays in Java

• Access to individual members is achieved via index (subscript), just as it is in C++

• Can construct and initialize an array in a single statement, such as:char [] vowels = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’};

5

Anonymous arrays

• Array reference that is not stored in a variable• Can be used in construction of other objects• Java’s Polygon class is an example; has

constructor:Polygon(int[] xvalues, int[] yvalues, int n)

Can construct a triangle using anonymous arrays, as shown below:

Polygon triangle =

new Polygon(new int[] {0, 10, 5}, new int[] {10, 0, 5}, 3);

6

2-dimensional arrays

• Declaration & construction:Data type[][] name = new data type [rows][cols];

• As in C++, array is indexed in row-major order

7

String[] args

• The default parameter to every main() method is args, an array of String

• This array is used to hold command-line arguments– args.length stores the number of arguments– Each argument is stored as a String from

args[0] to args[args.length-1]

8

ArrayLists

• ArrayList class describes object that can hold a collection of objects of any type– objects, not primitive data types– can use wrapper classes (Integer, Double,

Character, etc.) if ArrayList of one of these types is desired

• ArrayList class is part of the java.util package

9

ArrayList methods

• Constructor:ArrayList myList = new ArrayList();

• doesn’t specify data type or size• data type is Object, size determined by number of elements

placed in List

• add()– simplest form just adds element to end of List; example:

myList.add(“Finish notes before class”);

myList.add(“Get haircut”);

myList.add(“Lather, rinse, repeat”);

10

ArrayList methods

• size(): returns number of elements in List• get(): returns element at specified position

(between 0 and size() - 1)String firstItem = (String)myList.get(0);

Since get() returns an Object, need explicit cast

• set(): replaces element at specified location– first argument: position of element

– second argument: object to place

myList.set(2, “Buy wig”);

11

ArrayList methods

• Insertion of elements in the middle of a list is accomplished via a call to add() using two arguments:– first: position of insertion– second: object to insert

myList.add(1, “Yet another item”);

12

ArrayList methods

• remove() method removes the element at the specified position:myList.remove(0);

• Both add() and remove() move remaining elements up or down as needed

13

LinkList

• ArrayLists are especially useful for applications in which random access to specific elements is desirable

• However, they are inefficient for applications in which there are frequent insertions/deletions in the middle of a List

• The LinkList class provides an alternative for this type of application

14

LinkList

• Part of Java standard library

• Like ArrayList, container for collection of Objects

• Methods include:– constructor: LinkedList aList = new LinkedList();– add(): places element at end of List– listIterator(): constructs an iterator for traversal of

List (described on next slide)

15

ListIterator()

• Object that can access a position anywhere within a LinkList

• A LinkList object creates an iterator by calling its listIterator() method:ListIterator cursor = aList.listIterator();

• Includes methods for moving through a List and adding and removing an element from the List

16

ListIterator methods

• hasNext(): returns true if iterator hasn’t reached end of List

• next(): returns current element; moves iterator to next elementwhile (cursor.hasNext())

{

String s = (String)cursor.next();

System.out.println(s);

}

17

Adding/removing elements

• add() called on iterator inserts element in position in front of the iterator:cursor.add(“new element”);

• remove() called on iterator removes the element in front of the iterator:cursor.remove();

• If an iterator reaches the end of a list, can start over by constructing another one

18

Packages

• Groups of Java classes

• Named using dot-separated sets of identifiers that correspond to the names of directories in a class’s path

• Base directory of a package is that directory containing all package directories

• Compilation of a class in a package must occur in the class’s base directory

19

Placing class in a package

• As the beginning of the source file, use a statement like the following:package base.sub1.sub2.subN.current;

– for example, a class in the MYCLASSES subdirectory on drive a: would contain the statement:

package myclasses;

– if the class name is CLASS1, its full name would be myclasses.class1

• A source file that doesn’t have a package statement is considered to be in the default package

20

Internal documentation & javadoc

• javadoc is a program included with the SDK (along with javac and java)

• When code has been commented with specially formatted comments, javadoc produces HTML pages describing your classes

21

Format for javadoc comments

• Start with /** and end with */• First sentence of each comment will be copied by

javadoc to the summary table; should place one such comment strategically before each class and each method

• Use @param at the start of a line to describe a parameter

• Use @return at the start of a line to describe a return value

22

Guidelines for comments in Java code

• Supply an informative summary comment in the first line of documentation for every class and method

• Supply a description of every parameter and return value

• Write the comments first, then write the code:– for class, can use description from CRC card

– for methods, can borrow information from responsibilities

23

Running javadoc

• At command line, type javadoc *.java

• Produces:– one HTML file per class– index.html containing links to other files

• When code is updated, update javadoc comments at the same time; run javadoc to update your HTML files

24

Java intro

Part 3