|
CS 596 Java Programming Fall Semester, 1998 Arrays, Strings, Control Structures |
|
|---|---|---|
|
© 1998, All Rights Reserved, SDSU & Roger Whitney San Diego State University -- This page last updated 19-Sep-98 |
public class SimpleReferenceExample
{
public static void main( String args[] )
{
// Reference allocated, no array space allocated
float[] sampleArray;
//allocate array locations on heap
sampleArray = new float[ 12 ];
// Indexing starts at 0 like C/C++
sampleArray[ 0 ] = 3.2F;
int[] integerArray = new int[ 3 ];
// Reference refers to new array.
// Old array available for garbage collection
sampleArray = new float[ 2 ];
}
}
public class ArrayExamples
{
public static void main( String args[] )
{
// Two locations to place [ ]
int integerArray[ ];
int[ ] alias;
integerArray = new int[ 10 ]; // Indexed from 0 to 9
// Note use of .length to get array size
for ( int index = 0; index < integerArray.length; index++ )
integerArray[ index ] = 5;
alias = integerArray; // Arrays are references
alias[ 3 ] = 10;
System.out.println( integerArray[ 3 ] ); //Prints 10
integerArray = new int[ 8 ];
System.out.println( integerArray[ 3 ] ); //Prints 0, Why?
System.out.println( alias[ 3 ] ); //Prints 10
System.out.println( integerArray ); //Prints [I@5e300868
}
}
public classArrayExamples
{
public static void main( String args[] )
{
int[] integerArray = new int[ 4 ];
integerArray[ 1 ] = 12
integerArray = new int[ 2 ]; // Memory Leak - No!
integerArray[ 1 ] = 5;
int[] aliasForArray = integerArray;
aliasForArray[ 1 ] = 10;
System.out.println( integerArray[ 1 ] ); //Prints 10
}
}
int[] integerArray = new int[ 4 ];
integerArray[ 1 ] = 12
integerArray = new int[ 2 ]; // Memory Leak - No!
integerArray[ 1 ] = 5;
int[] aliasForArray = integerArray;
aliasForArray[ 1 ] = 10;



public class BoundsAndInitialValueExample
{
public static void main( String args[] )
{
int[ ] data = new int[ 2];
System.out.println( "Data[1]= " + data[1] );
data[ 12] = 2;
System.out.println( "After assignment" );
}
}
Data[1]= 0 java.lang.ArrayIndexOutOfBoundsException at BoundsAndInitialValueExample.main(BoundsAndInitialValueExample.java:9)
public class InitializingArrays
{
public static void main( String args[] )
{
// Short Declaration syntax
int[ ] odds = {1, 3, 5, 7, 9 };
char[ ] vowels = { 'a', 'e', 'i', 'o', 'u' };
String[] names;
// Assignment syntax - new in JDK 1.1.x
names = new String[] { "Sam", "Sally", "Pete" };
// Can use longer syntax in declarations
char[] abc = new char[] { 'a', 'b', 'c' };
//You can not use short syntax in assignments
double[ ] trouble;
trouble = { 1.2, 2.3, 5.4 }; //Compiler Error
}
}
public class MultidimensionalArrayExample
{
public static void main( String args[] )
{
int[][] squareArray = new int [ 10 ] [ 20 ];
squareArray[ 2 ] [ 5 ] = 25;
int[][][] threeDArray = new int [ 10 ] [ 20 ][ 5 ];
int[][] triangularArray;
triangularArray = new int [ 30 ] [ ] ;
// Allocate rows of different length!
for ( int row = 0; row < triangularArray.length; row ++ )
triangularArray [ row ] = new int [ row ];
// Fill array locations
for ( int row = 0; row < triangularArray.length; row ++ )
for ( int col = 0; col < triangularArray[ row ].length; col++ )
triangularArray[ row ][ col ] = 10;
// Initializers for multidimensional arrays,
// note the different size rows
int[ ] [ ] oddShape = {
{ 1 , 2, 3 } ,
{ 1, 2 },
{ 4, 5, 6, 7 }
};
}
}
|
binary
search
|
equals
|
|
fill
|
sorting
|
import java.util.Arrays;
public class NewArrayOperations
{
public static void main( String[ ] args )
{
int [] list = { 9, 2, 5, 7, 1 };
// Sorts using fancy quicksort
Arrays.sort( list );
// if not found, then return -1
int foundIndex = Arrays.binarySearch( list, 7 );
System.out.println( "Found 7 at: " + foundIndex );
int[ ] ones = new int[ 12 ];
// Fill array with value 1
Arrays.fill( ones, 1 );
System.out.println( "One: " + ones[10] );
}
}
Found 7 at: 3 One: 1
public class StringExample
{
public static void main( String args[] )
{
String firstName = " Roger ";
String lastName = " Whitney ";
String fullName = firstName + lastName;
System.out.println( fullName );
firstName = firstName.toLowerCase();
lastName = lastName.toUpperCase();
System.out.println( firstName );
firstName = firstName.trim(); // trim leading, trailing
lastName = lastName.trim(); // white space
lastName = lastName.replace( 'I', 'a' );
System.out.println( firstName + lastName );
String floatAsString = String.valueOf( 13.4e+5f);
System.out.println( floatAsString );
}
}
Roger Whitney
roger
rogerWHaTNEY
1.34e+06
firstName = firstName.toLowerCase();
| charAt(int) | replace(char,char) |
| compareTo(String) | startsWith(String) |
| concat(String) | substring(int,int) |
| copyValueOf(char[]) | toCharArray() |
| endsWith(String) | toLowerCase() |
| equals(Object) | toUpperCase() |
| equalsIgnoreCase(String) | trim() |
| getChars(int,int,char[],int) | valueOf(int) |
| indexOf(String) | valueOf(long) |
| lastIndexOf(String) | valueOf(float) |
| length() | valueOf(double) |
| regionMatches(int,String,int,int) |
public class StringTest
{
public static void main( String[] args )
{
String me = "Roger";
if ( me == "Roger" )
System.out.println( "Yes, I am me" );
else
System.out.println( "No, I am not me?" );
String shortName = me.substring( 0, 3 );
System.out.println( shortName );
if ( shortName == "Rog" )
System.out.println( "Very Good" );
else
System.out.println( "Trouble here" ); //How is this possible?
if ( shortName.equals( "Rog" ) )
System.out.println( "Do it this way" );
}
}
if ( me == "Roger" )
System.out.println( "Yes, I am me" );
else
System.out.println( "No, I am not me?" );
if ( shortName == "Rog" )
public class CommandLineExample
{
public static void main( String args[] )
{
System.out.println( "Args length: " + args.length );
for ( int k = 0; k < args.length; k++ )
{
System.out.println( "Argument " + k + "\t" + args[ k ] );
};
Float secondArgument = Float.valueOf( args[ 1 ] );
System.out.println( secondArgument );
}
}
rohan 16-> java CommandLineExample 1 2 3 4 5 Args length: 5 Argument 0 1 Argument 1 2 Argument 2 3 Argument 3 4 Argument 4 5 2
public class Control
{
public static void main( String args[] )
{
int a = 5;
int b = 10;
if ( a > b ) System.out.println( "a is bigger ");
if ( a > b )
System.out.println( "a is bigger ");
else
System.out.println( "b is bigger ");
switch ( a )
{ //Controlling expression converted to int
case 4:
b++;
break;
case 10:
b--;
break;
default: // optional
System.out.println( "Default action" );
};
while ( a < b )
{
a++;
};
for ( int loop = 0; loop < a; loop++ )
{
System.out.println( a );
};
System.out.println( loop ); // Error, loop does not
// exist here
do
{
System.out.println( a-- );
System.out.println( b );
}
while ( a > b );
int max = ( a > b ) ? a : b;
if ( ( a > 5 ) && ( b < 10 ) )
System.out.println( "Good" );
a += ( a = 5 );
}
}
public class BreakExample {
public static void main( String args[] ) {
for ( int row = 0; row < 5; row++ ) {
for ( int column = 0; column < 4 ; column++ ) {
System.out.println( row + "\t" + column );
if ( ((row + column) % 2 ) == 0 )
break;
System.out.println( " After if " );
}
};
Outer:
for ( int row = 0; row < 5; row++ ) {
for ( int column = 0; column < 4; column++ ) {
System.out.println( row + "\t" + column );
if ( ((row + column) % 2 ) == 0 )
break Outer;
System.out.println( " After if " );
}
}
}
}
| 0 0 | 3 0 |
| 1 0 | After if |
| After if | 3 1 |
| 1 1 | 4 0 |
| 2 0 | 0 0 |
public class SampleFunction {
public static int subtractOne( int decreaseMe ) {
return decreaseMe - 1;
}
public static void main( String[] args ) {
int startValue = 5;
int smaller = subtractOne( startValue );
int larger = addOne( startValue );
System.out.println( "smaller = " + smaller + "\n" +
"larger = " + larger );
}
public static int addOne( int increaseMe ) {
return increaseMe + 1;
}
}
smaller = 4 larger = 6
public class TestParameter
{
public static void main( String[] args )
{
int startValue = 5;
noChange( startValue );
System.out.println( startValue );
}
public static void noChange( int fixed )
{
fixed = fixed + 10;
}
}
5
public class ReturnExample
{
public static int change( int input )
{
return input + 10;
}
public static void voidReturnExample( int data )
{
if (data > 10 )
return;
if (data < 5)
System.out.println( "Under 5");
else
System.out.println( "Over 5");
}
}
public class ArrayAsParameter
{
public static void main( String args[] )
{
int[] integerArray = new int[ 10 ];
integerArray[ 1 ] = 5;
modifyElements( integerArray, 10 );
System.out.println( integerArray[ 1 ] );
}
public static void modifyElements( int[] changeMe, int newValue )
{
for ( int index = 0; index < changeMe.length; index++ )
changeMe[ index ] = newValue;
}
}
10
public class ArrayAsParameter
{
public static void main( String args[] )
{
int[] integerArray = new int[ 10 ];
integerArray[ 1 ] = 5;
doesNotWork( integerArray );
System.out.println( integerArray[ 1 ] );
}
public static void doesNotWork( int[] changeMe )
{
changeMe = new int[ 10 ];
for ( int index = 0; index < changeMe.length; index++ )
changeMe[ index ] = 555;
}
}
public class FinalExamples
{
public static void fixed( final double fixedValue )
{
double newValue = fixedValue + 1;
fixedValue = fixedValue + 1; //Compile error
final int aConstant = (int) fixedValue;
final int aBlankFinal; //This is ok
aBlankFinal = 12; //This is ok
aBlankFinal = 13; //Compile error
}
public static void fixedArray( final int[] data )
{
data[2] = 4; // This is ok, Why?
data[2] = 5; // This is ok
data = new int[ 4]; //Compile error
}
}