Arrays.

Slides:



Advertisements
Similar presentations
Arrays and records Programming Language Design and Implementation
Advertisements

Arrays and ArrayLists Ananda Gunawardena. Introduction Array is a useful and powerful aggregate data structure presence in modern programming languages.
Elementary Data Types Prof. Alamdeep Singh. Scalar Data Types Scalar data types represent a single object, i.e. only one value can be derived. In general,
ISBN Chapter 6 Data Types: Structured types.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
1 Arrays  Arrays are objects that help us organize large amounts of information  Chapter 8 focuses on: array declaration and use passing arrays and array.
Elementary Data Types Scalar Data Types Numerical Data Types Other
Structured Data Types and Encapsulation Mechanisms to create new data types: –Structured data Homogeneous: arrays, lists, sets, Non-homogeneous: records.
Arrays. The array data structure An array is an indexed sequence of components –Typically, the array occupies sequential storage locations –The length.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
Chapter 9 Introduction to Arrays
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
MT311 Java Application Programming and Programming Languages Li Tak Sing ( 李德成 )
Introduction to Data Structures. Definition Data structure is representation of the logical relationship existing between individual elements of data.
Object Oriented Programming in Java Habib Rostami Lecture 5.
Arrays. Arrays as ADTs An array is an Abstract Data Type –The array type has a set of values The values are all the possible arrays –The array type has.
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2009 Pearson Education, Inc., Upper.
Arrays Module 6. Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array.
Pointers. The structure of memory Computer memory is a linear sequence of addressable locations Addresses are numbered starting at zero In personal computers,
CPSC 252 Concrete Data Types Page 1 Overview of Concrete Data Types There are two kinds of data types: Simple (or atomic) – represents a single data item.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Arrays Chapter 7. MIS Object Oriented Systems Arrays UTD, SOM 2 Objectives Nature and purpose of an array Using arrays in Java programs Methods.
REEM ALMOTIRI Information Technology Department Majmaah University.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
Arrays. Arrays as ADTs An array is an Abstract Data Type –The array type has a set of values The values are all the possible arrays –The array type has.
Chapter 9 Introduction to Arrays Fundamentals of Java.
CSI 3125, Data Types, page 1 Data types Outline Primitive data types Structured data types Strings Enumerated types Arrays Records Pointers Reading assignment.
Data Types Chapter 6: Data Types Lectures # 11. Topics Introduction Primitive Data Types Character String Types Array Types Associative Arrays Record.
Arrays Chapter 7.
Data Types In Text: Chapter 6.
Course Developer/Writer: A. J. Ikuomola
Chapter 6 – Data Types CSCE 343.
Vectors 5/31/2018 9:25 AM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
CHP - 9 File Structures.
Data Structures I (CPCS-204)
Arrays (review) CSE 2011 Winter May 2018.
Type Checking Generalizes the concept of operands and operators to include subprograms and assignments Type checking is the activity of ensuring that the.
CHP-2 ARRAYS.
Array, Strings and Vectors
Arrays.
Chapter 7 Part 1 Edited by JJ Shepherd
Data Structures Data Structure is a way of collecting and organising data in such a way that we can perform operations on these data in an effective.
Data Structures Interview / VIVA Questions and Answers
Array.
Objects First with Java CITS1001
Object Oriented Programming COP3330 / CGS5409
Arrays and Linked Lists
Lecture 18 Arrays and Pointer Arithmetic
Introduction to Data Structures
Arrays 6-Dec-18.
Introduction To Programming Information Technology , 1’st Semester
Arrays and Collections
Data Structures (CS212D) Week # 2: Arrays.
Arrays Week 2.
Introduction to Data Structure
Java SE 7 One and Multi Dimensional Arrays Module 6
Arrays.
Course Overview PART I: overview material PART II: inside a compiler
Arrays.
Arrays.
CS2013 Lecture 7 John Hurley Cal State LA.
Arrays and records Programming Language Design and Implementation
Arrays 2-May-19.
Arrays and records Programming Language Design and Implementation
C++ Array 1.
Arrays and records Programming Language Design and Implementation
Linear Time Sorting.
Arrays.
Presentation transcript:

Arrays

The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length of the array is determined when the array is created, and cannot be changed Each component of the array has a fixed, unique index Indices range from a lower bound to an upper bound Any component of the array can be inspected or updated by using its index This is an efficient operation: O(1) = constant time

Array variations I The array indices may be integers (C, Java) or other discrete data types (Pascal, Ada) The lower bound may be zero (C, Java), one (Fortran), or chosen by the programmer (Pascal, Ada) In most languages, arrays are homogeneous (all components must have the same type); in some (Lisp, Prolog) the components may be heterogeneous (of varying types)

Array variations II In an object-oriented language, arrays may be objects (Java) or not objects (C++) Arrays may carry additional information about themselves, such as type and length (Java), or may consist only of their components (C, C++) I will use the terms reflective and non-reflective, respectively, to refer to these two types of arrays This is not standard terminology, but it is consistent with other uses of the terms

Arrays in Java I Array indices are integers An array of length n has bounds 0 and n-1 Arrays are homogeneous However, an array of an object type may contain objects of any subtype of that object For example, an array of Animal may contain objects of type Cat and objects of type Dog An array of Object may contain any type of object (but cannot contain primitives)

Arrays in Java II Arrays are objects Arrays are reflective Arrays are allocated by new, manipulated by reference, and garbage collected However, the usual bracket notation a[i] is provided as syntactic sugar Arrays are reflective a.length is the length of array a a.getClass() is the type of array a An array of integers has type [I An array of Strings has type [Ljava.lang.String;

Arrays in Java III Here’s one way to visualize an array in Java: [I 4 myArray class tag [I length 4 0 1 2 3 17 23 948 3

Subarrays 1 2 3 5 8 13 21 34 [I 10 55 array a subarray a[2...6] A subarray is a consecutive portion of an array 1 2 3 5 8 13 21 34 [I 10 55 array a 0 1 2 3 4 5 6 7 8 9 subarray a[2...6] Java provides no language support for subarrays To use a subarray, you must keep track of (1) the array itself, (2) the lower bound, and (3) the upper bound Typically, these will be three parameters to a method that does something with the subarray

Arrays as ADTs An array is an Abstract Data Type The array type has a set of values The values are all the possible arrays The array type has a set of operations that can be applied uniformly to each of these values The only operation is indexing Alternatively, this can be viewed as two operations: inspecting an indexed location storing into an indexed location It’s abstract because the implementation is hidden: all access is via the defined operations

Two-dimensional arrays I Some languages (Fortran, Pascal) support two-dimensional (2D) arrays: A two-dimensional array may be stored in computer memory in either of two ways: a c b i k j e g f d l h logical view rows columns a c b i k j e g f d l h row 0 row 1 row 2 row major order: a i e k h d f c j b l g col 0 col 1 col 2 col 3 column major order:

Two-dimensional arrays II In a 2D array, we generally consider the first index to be the row, and the second to be the column: a[row, col] 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,4 2,0 2,1 2,2 2,3 2,4 3,0 3,1 3,2 3,3 3,4 0 1 2 3 columns 0 1 2 3 4 rows In most languages we don’t need to know the implementation--we work with this abstraction

2D arrays in Java Java doesn’t have “real” 2D arrays, but array elements can themselves be arrays: int x[][] denotes an array x of array components, each of which is an array of integer components We can define the above array like this: x = new int[5][8]; and treat it as a regular 2D array This is an array of 5 arrays Each subarray is an array of 8 ints However, we can do fancier things than this with arrays in Java

Ragged arrays int ragged[][] = new int[4][]; for (int i = 0; i < 4; i++) { ragged[i] = new int[i + 1]; } 0 1 2 3 0 1 2 3 10 20 30 11 21 31 33 22 32 for (int i = 0; i < 4; i++) { for (int j = 0; j < ragged[i].length; j++) { ragged[i][j] = 10 * i + j; } }

Inserting an element into an array Suppose we want to insert the value 8 into this sorted array (while keeping the array sorted) 1 3 7 12 14 17 19 22 30 1 3 7 8 12 14 17 19 22 30 We can do this by shifting all the elements after the mark right by one location Of course, we have to discard the 30 when we do this • Moving all those elements makes this a very slow operation!

Deleting an element from an array Deleting an element is similar--again, we have to move all the elements after it 1 3 7 8 12 14 17 19 22 1 3 7 12 14 17 19 22 ? • This is a slow operation; we don’t want to do it very often This leaves a “vacant” location at the end How do we mark it vacant? Every bit pattern represents a valid integer We must keep a count of how many valid elements are in the array

Conclusions Arrays have the following advantages: Accessing an element by its index is very fast (constant time) Arrays have the following disadvantages: All elements must be of the same type The array size is fixed and can never be changed Insertion into arrays and deletion from arrays is very slow

The End