0% found this document useful (0 votes)
25 views23 pages

02-MoreDataTypes Operators

The document discusses Java arrays and multidimensional arrays. It begins by defining arrays as collections of variables of the same type referred to by a common name. It then covers one-dimensional arrays, initializing arrays, irregular arrays, two-dimensional arrays, and arrays with more than two dimensions. Examples are provided to demonstrate declaring, initializing, and accessing elements in arrays of various types.

Uploaded by

Vân Trần
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views23 pages

02-MoreDataTypes Operators

The document discusses Java arrays and multidimensional arrays. It begins by defining arrays as collections of variables of the same type referred to by a common name. It then covers one-dimensional arrays, initializing arrays, irregular arrays, two-dimensional arrays, and arrays with more than two dimensions. Examples are provided to demonstrate declaring, initializing, and accessing elements in arrays of various types.

Uploaded by

Vân Trần
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

12/10/2022

JAVA PROGRAMMING

Week 2: More Data Types and


Operators
Lecturer: NGUYỄN Thị Minh Tuyền

Plan 2

1. Arrays
2. Strings
3. Operators

Java Programming

1
12/10/2022

Plan 3

1. Arrays
2. Strings
3. Operators

Java Programming

Array 4

• An array is a collection of variables of the same type,


referred to by a common name.
• In Java, arrays can have one or more dimensions,
although the one-dimensional array is the most common.
• Arrays are used for a variety of purposes because they
offer a convenient means of grouping together related
variables.

Java Programming

2
12/10/2022

One-Dimensional Arrays 5

• General form:
type arrayname[] = new type[size];
• type declares the element type of the array. The element
type determines the data type of each element contained
in the array.
• The number of elements that the array will hold is
determined by size.
• The creation of an array is a two-step process
• declare an array reference variable.
• allocate memory for the array, assigning a reference to that
memory to the array variable.
à arrays in Java are dynamically allocated using the new operator.

Java Programming

Example 6
1. // Demonstrate a one-dimensional array.
2. public class ArrayDemo {
3. public static void main(String[] args) {
4. int sample[] = new int [10];
5. int i;
6. for(i = 0; i < 10 ; i++) sample[i] = i;
7. for(i = 0; i < 10; i++) {
8. System.out.println("sample[" + i +
9. "] = " + sample[i]);
10. }
11. }
12. }

Java Programming

3
12/10/2022

1. public class MinMax {


2.
3.
public static void main(String[] args) { 7
int n = 10;
4.
int nums[] = new int[n];
5.
int min, max;
6.
nums[0] = 99; nums[1] = -10; nums[2] = 100123;
7.
nums[3] = 18; nums[4] = -978; nums[5] = 5623;
8.
nums[6] = 463; nums[7] = -9; nums[8] = 287;
9.
10. nums[9] = 49; min = max = nums[0];
11. for(int i = 1; i < n; i++) {
12. if(nums[i] < min) min = nums[i];
13. if(nums[i] > max) max = nums[i];
14. }
15. System.out.println("Min and max: " + min
16. + " " + max);
17.
}
}
Java Programming

type arrayname[] = { val1, val2, val3, ... , valN }; 8


1. public class MinMax2 {
2. public static void main(String[] args) {
3. int n = 10;
4. int nums[] = {99, -10, 100123, 18, -978,
5. 5623, 463, -9, 287, 49};
6. int min, max;
7. min = max = nums[0];
8. for(int i = 1; i < n; i++) {
9. if(nums[i] < min) min = nums[i];
10. if(nums[i] > max) max = nums[i];
11. }
12. System.out.println("Min and max: " + min
13. + " " + max);
14. }
15. }
Java Programming

4
12/10/2022

9
1. public class ArrayErr {
2. public static void main(String[] args) {
3. int sample[] = new int[10];
4. int i;
5. //generate an array overrun
6. for(i = 0; i < 100; i++) {
7. sample[i] = i;
8. }
9. }
10. }
à an ArrayIndexOutOfBoundsException is generated and the
program is terminated.

Java Programming

MULTIDIMENSIONAL ARRAYS 10

Java Programming

10

5
12/10/2022

Two-Dimensional Arrays 11

• Multidimensional array is an array of arrays.


• Two-dimensional array is the simplest form of the
multidimensional array.
• A list of one-dimensional arrays.
• Example:
int table[][] = new int[10][20];

Java Programming

11

Example 12
1. int table[][] = new int[3][4];
2. for(int i = 0; i < 3; ++i) {
3. for(int j = 0; j < 4; ++j) {
4. table[i][j] = (i*4) + j + 1;
5. System.out.print(table[i][j] + " ");
6. }
7. System.out.println();
8. }

Java Programming

12

6
12/10/2022

Irregular Arrays 13

• When allocating memory for a multidimensional array:


• Need to specify only the memory for the first (leftmost)
dimension.
• It is possible to allocate the remaining dimensions
separately.
• Example: when you allocate dimensions separately, you do not
need to allocate the same number of elements for each index.
• Since multidimensional arrays are implemented as arrays
of arrays, the length of each array is under your control.

Java Programming

13

1. ...
14
2. int riders[][] = new int[7][];
3. // The second dimensions are 10 elements long
4. riders[0] = new int[10]; riders[1] = new int[10];
5. riders[2] = new int[10]; riders[3] = new int[10];
6. riders[4] = new int[10];
7. // The second dimensions are 2 elements long
8. riders[5] = new int[2]; riders[6] = new int[2];
9. int i, j;
10. //fabricate some fake data
11. for(i = 0; i < 5; i++)
12. for(j = 0; j < 10; j++) riders[i][j] = i + j + 10;
13. for(i = 5; i < 7; i++)
14. for(j = 0; j < 2; j++) riders[i][j] = i + j + 10;
15. ...
Java Programming

14

7
12/10/2022

15
1. ...
2.
System.out.println("Riders per trip during the week:");
3.
for(i = 0; i < 5; i++) {
4.
5. for(j = 0; j < 10; j++)
6. System.out.print(riders[i][j] + " ");
7.
System.out.println();
8.
}
9.
10.
System.out.println();
11. System.out.println("Riders per trip on the weekend:");
12. for(i = 5; i < 7; i++) {
13.
for(j = 0; j < 2; j++)
14.
System.out.print(riders[i][j] + " ");
System.out.println();
} Java Programming

15

Arrays of three or more


dimensions 16

• Java allows arrays with more than two dimensions.


• General form:
type name[ ][ ]...[ ] = new type[size1][size2]...[sizeN];

• Example:
int multidim[][][] = new int[4][10][3];

Java Programming

16

8
12/10/2022

Initializing multi-dimensional arrays 17


1. typespecifier array_name[] [] = {
2. { val, val, val, ..., val },
3. { val, val, val, ..., val },
4. .
5. .
6. .
7. { val, val, val, ..., val }
8. };

Java Programming

17

Example 18
1. // Initialize a two-dimensional array.
2. public class Squares {
3. public static void main(String[] args) {
4. int sqrs[][] = {
5. {1, 1},{2, 4},{3, 9},{4, 16},
6. {5, 25},{6, 36},{7, 49},{8, 64},
7. {9, 81},{10, 100}
8. };
9. for(int i = 0; i < 10; i++) {
10. for(int j = 0; j < 2; j++)
11. System.out.print(sqrs[i][j] + " ");
12. System.out.println();
13. }
14. }
15. }
Java Programming

18

9
12/10/2022

Alternative array declaration 19

type[] varname;
• Example:
int counter[] = new int[3];
int[] counter = new int[3];
char table[][] = new char[3][4];
char[][] table = new char[3][4];
int [] nums, nums2, nums3;// create three arrays
int nums[], nums2[], nums3[]; // also, create
three arrays
int[] someMethod() {..}

Java Programming

19

Assigning array references 20

• When you assign one array reference variable to another,


you are simply changing what object that variable refers
to.
• You are not causing a copy of the array to be made, nor
are you causing the contents of one array to be copied to
the other.
• Example: AssignARef.java

Java Programming

20

10
12/10/2022

Using length 21

• Recall: In Java, arrays are implemented as objects.


àBenefit: each array has associated with it a length
instance variable that contains the number of elements that
the array can hold.
• Example: LengthDemo.java (See next slide)

Java Programming

21

1.
int list[] = new int[10];
22
2.

3.
int nums[] = {1, 2, 3};
4. int table[][] = { {1, 2, 3},{4, 5}, {6, 7, 8, 9} };
5.
System.out.println("Length of list is " + list.length);
6.

7. System.out.println("Length of nums is " + nums.length);


8.
System.out.println("Length of table is " + table.length);
9.

10.
System.out.println("Length of table[0] is " + table[0].length);
11. System.out.println("Length of table[1] is " + table[1].length);
12.
System.out.println("Length of table[2] is " + table[2].length);
13.

14. System.out.println();
15. // Use length to initialize list
16.
for(int i = 0; i < list.length; i++)
17.

list[i] = i * i;
System.out.print("Here is list: ");
for(int i = 0; i < list.length; i++)
System.out.print(list[i] + " ");
System.out.println();
Java Programming

22

11
12/10/2022

The for-each style for loop 23

for(type itr-var : collection) statement-block


• type specifies the type, and
• itr-var specifies the name of an iteration variable that will receive
the elements from a collection, one at a time, from beginning to end.
• The collection being cycled through is specified by collection.
• With each iteration of the loop, the next element in the collection is
retrieved and stored in itr-var.
• The loop repeats until all elements in the collection have been
obtained.
à When iterating over an array of size N, the enhanced for obtains the
elements in the array in index order, from 0 to N–1.

Java Programming

23

Example 24
1. // Use a for-each style for loop
2. public class ForEach {
3. public static void main(String[] args) {
4. int nums[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
5. int sum = 0;
6. // Use for-each style for to display and sum the values.
7. for(int x : nums) {
8. System.out.println("Value is: " + x);
9. sum += x;
10. }
11. System.out.println("Summation: " + sum);
12. }
13. }

Java Programming

24

12
12/10/2022

1. public class NoChange {


2.
3.
public static void main(String[] args) {
int nums[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 25
4. // Use for-each style for to display and sum the values.
5. for(int x : nums) {
6. System.out.print(x + " ");
7. x = x * 10; // no effect on nums
8. }
9. System.out.println();
10. for(int x : nums) {
11. System.out.print(x + " ");
12. }
13. System.out.println();
14. }
15. }
16.

Java Programming

25

Iterating over multi-dimensional


arrays 26

• Enhanced for also works on multidimensional arrays.


• Remember: Multi-dimensional arrays consist of arrays of
arrays.
• In general, when using the foreach for to iterate over an
array of N dimensions, the objects obtained will be arrays
of N–1 dimensions.

Java Programming

26

13
12/10/2022

Example 27
1. int sum = 0;
2. int nums[][] = new int[3][5];
3. // give nums some values
4. for(int i = 0; i < 3; i++)
5. for(int j = 0; j < 5; j++)
6. nums[i][j] = (i+1)*(j+1);
7. // Use for-each for loop to display and sum the values
8. for(int x[] : nums) {// Notice how x is declared
9. for(int y: x) {
10. System.out.println("Value is: " + y);
11. sum += y;
12. }
13. }
14. System.out.println("Summation: " + sum);
Java Programming

27

Applying the Enhanced for 28


1. int nums[] = {6, 8, 3, 7, 5, 6, 1, 4};
2. int val = 5;
3. boolean found = false;
4. // Use for-each style for to search nums for val.
5. for(int x : nums) {
6. if (x == val) {
7. found = true;
8. break;
9. }
10. }
11. if(found)
12. System.out.println("Value found!");

Java Programming

28

14
12/10/2022

Plan 29

1. Arrays
2. Strings
3. Operators

Java Programming

29

Constructing Strings 30

• Using new and calling the String constructor.


• Constructing a String from another String

Java Programming

30

15
12/10/2022

Example 31
1. // Introduce String.
2. public class StringDemo {
3. public static void main(String[] args) {
4. System.out.println("In Java, strings are objects.");
5. String str1 = new String("Java strings are objects");
6. String str2 = "They are constructed in various ways.";
7. String str3 = new String(str2);
8. System.out.println(str1);
9. System.out.println(str2);
10. System.out.println(str3);
11. }
12. }

Java Programming

31

Operating on Strings 32

• Operations

• String substring(int startIndex, int endIndex)

Java Programming

32

16
12/10/2022

Arrays of Strings 33
1. String strs[] = {"This", "is", "a", "test."};
2. System.out.println("Original array: ");
3. for(String s: strs)
4. System.out.print(s + " ");
5. System.out.println("\n");
6. // change a string
7. strs[1] = "was";
8. strs[3] = "test, too!";
9. System.out.println("Modified array: ");
10. for(String s: strs)
11. System.out.print(s + " ");
12. System.out.println("\n");

Java Programming

33

Strings are immutable 34

• The contents of a String object are immutable.


• This restriction allows Java to implement strings more
efficiently.
• When you need a string that is a variation on one that already
exists, simply create a new string that contains the desired
changes.
• Unused String objects are automatically garbage collected.
• String reference variables may change the object to
which they refer.
• The contents of a specific String object cannot be changed after
it is created.
• Java also supplies StringBuilder and
StringBuffer that support strings that can be
changed.

Java Programming

34

17
12/10/2022

Using a string to control a


switch statement 35
1. String command = "cancel";
2. switch(command) {
3. case "connect":
4. System.out.println("Connecting");
5. break;
6. case "cancel":
7. System.out.println("Canceling");
8. break;
9. case "disconnect":
10. System.out.println("Disconnecting");
11. break;
12. default:
13. System.out.println("Command Error!");
break;
Java Programming
}

35

Using command-line arguments 36


1. // Display all command-line information
2. public class CLDemo {
3.

4. public static void main(String[] args) {


5. System.out.println("There are " + args.length +
6. " command-line arguments.");
7. System.out.println("They are: ");
8. for(int i = 0; i < args.length; i++)
9. System.out.println("arg[" + i + "]:" + args[i]);
10. }
11. }

Java Programming

36

18
12/10/2022

Plan 37

1. Arrays
2. Strings
3. Operators

Java Programming

37

The bitwise operators 38

Java Programming

38

19
12/10/2022

Example 39
1. // Uppercase letters.
2. public class UpCase {
3. public static void main(String[] args) {
4. char ch;
5. for(int i = 0; i < 10; i++) {
6. ch = (char)('a' + i);
7. System.out.print(ch);
8. // This statement turns off the 6th bit.
9. ch = (char)((int)ch & 65503);
10. // ch is now uppercase
11. System.out.print(ch + " ");
12. }
13. }
14. }

Java Programming

39

40
1. // Display the bits within a byte.
2. public class ShowBits {
3. public static void main(String[] args) {
4. int t;
5. byte val;
6. val = 123;
7. for(t = 128; t > 0; t = t/2) {
8. if((val & t) != 0) System.out.print("1 ");
9. else System.out.print("0 ");
10. }
11. }
12. }

Java Programming

40

20
12/10/2022

The Shift Operators 41

value << num-bits


value >> num-bits
value >>> num-bits
• value is the value being shifted by the number of bit
positions specified by num-bits.

Java Programming

41

Bitwise Shorthand Assignments 42

• x = x ^ 127;
• x ^= 127;

Java Programming

42

21
12/10/2022

The ? operator 43
if (condition)
var = expression1;
else
var = expression2;
is equivalent to
var = condition ? expression1 : expression2;
• Example:
// get absolute value of val
absval = val < 0 ? -val : val;

if(val < 0) absval = - val;


else absval = val;

Java Programming

43

44
1. // Prevent a division by zero using the ?.
2. public class NoZeroDiv {
3. public static void main(String[] args) {
4. int result;
5. for(int i = -5; i < 6; i++) {
6. result = (i != 0) ? (100/i) : 0;
7. if(i != 0)
8. System.out.println("100 / " + i
9. + " is " + result);
10. }
11. }
12. }

Java Programming

44

22
12/10/2022

45
1. public class NoZeroDiv2 {
2. public static void main(String[] args) {
3. for(int i = -5; i < 6; i++) {
4. if((i != 0) ? true : false)
5. System.out.println("100 / " + i +
6. " is " + 100/i);
7. }
8. }
9. }

Java Programming

45

46

QUESTION ?

Java Programming

46

23

You might also like