Dynamic Data Structures and Generics

Size: px
Start display at page:

Download "Dynamic Data Structures and Generics"

Transcription

1 Dynamic Data Structures and Generics Chapter 10 Chapter 10 1

2 Introduction A data structure is a construct used to organize data in a specific way. An array is a static data structure. Dynamic data structures can grow and shrink while a program is running. Vectors and linked data structures are dynamic. Chapter 10 4

3 Introduction, cont. Vectors are similar to arrays, but offer more flexibility. The linked list is a simple but useful linked data structure that makes use of inner classes. An inner class is a class definition within another class definition. Chapter 10 5

4 Introduction, cont. Java 5.0 allows definitions with parameters for types. These definitions are known as generics. int[] scores = new int[100]; scores = new int[200]; Does NOT add 100 new locations to scores! It creates a new array of 200 locations and the old array becomes garbage Chapter 10 6

5 Introduction to Vectors We can think of vectors as arrays that grow and shrink while a program is running. At the time an array is created, its length is fixed. Sometimes an array turns out to be too small for its intended use. Sometimes an array turns out to be too large for its intended use, but the unused portion of the array is not available for other purposes. Chapter 10 8

6 Introduction to Vectors, cont. Vectors serve the same purposes as arrays, but can change in length while a program is running. This added flexibility comes at a price: Vectors are less efficient than arrays. The base type of a vector must be a class type rather than a primitive type. (Automatic boxing and unboxing make this requirement less significant than it used to be.) Chapter 10 9

7 Using Vectors The definition of class Vector must be imported. import java.util.*; to create and name a vector Vector<String> v = new Vector<String>(20); The vector v stores objects of class String and has an initial capacity of 20. Chapter 10 10

8 Using Vectors, cont. When more capacity is needed, the system allocates more memory automatically. If the initial capacity was sufficient, the code is more efficient. In this example, the base type is type String. Any class can be used as the base type. But, wrapper classes MUST be used for primitive types. Chapter 10 11

9 Creating and Naming a Vector syntax Vector<Base_Type> v1 = new Vector<Base_Type>();// capacity=10, doubles Vector<Base_Type> v2 = new Vector<Base_Type>(n);// capacity=n, doubles Vector<Base_Type> v3 = new Vector<Base_Type>(n,p); //capacity=n, increases by p Chapter 10 12

10 Adding, Getting, and Setting Values to add an element v.addelement( Hello! ); to get the value of an element String temp = v.elementat(index); to change the value of an existing element v.setelementat( Hi, Mom!, index); Chapter 10 13

11 Size and Indices to learn the size of the vector int howmany = v.size(); The indices range from 0 to v.size()-1. Chapter 10 14

12 Inserting and Removing Values to insert an element v.insertelementat( Good-bye, position); elements at index position or higher move to index positions greater by one. to remove an element from a position v.removeelementat(position); Chapter 10 15

13 Inserting and Removing Values, cont. to remove the first occurrence of an element v.removeelement( Hello! ); to remove element at index i v.removeelementat(i); to remove all elements v.removeallelements(); Chapter 10 16

14 Searching a Vector to learn if an element is in the vector boolean found = v.contains( Good-bye ); to learn the location of the first occurrence of an element int location = v.indexof( Hi, Mom! ); to learn the location of the first occurrence of an element at or after a position int location = v.indexof( Hello, position); Chapter 10 17

15 Searching a Vector, cont. to learn the location of the last occurrence of an element int location = v.lastindexof( Hi, Mom! ); to learn the value of the first element String first = v.firstelement(); to learn the value of the last element String last = v.lastelement(); Chapter 10 18

16 Size and Capacity to learn if the vector is empty boolean none = v.isempty(); to learn the current capacity int howbig = v.capacity(); to make room for more elements v.ensurecapacity(moreelements); to trim to the current size v.trimtosize(); Chapter 10 19

17 Size and Capacity, cont. to set the size v.setsize(howmany); Chapter 10 20

18 Copying and Determining Equality to make a copy Vector<String> w = v.clone(); to test for equality boolean same = v.equals(w); Chapter 10 21

19 Vector Demonstration class VectorDemo Chapter 10 22

20 Parameterized Classes and Generics The class Vector is a parameterized class. Its parameter, denoted Base_Type, can be replaced by any class type. Java 5.0 allows definitions, called generic definitions or simply generics, with parameters for types. Chapter 10 27

21 Newer Collection Classes A new group of classes implement the Collection interface. These classes are known as collection classes. The Vector definition has been retrofitted to be a collection class. Chapter 10 28

22 Introduction to Linked Data Structures A linked data structure is a collection of objects (called nodes), each containing data and a (potential) reference to (at least) one other node. Chapter 10 30

23 Linked Lists The predefined LinkedList class is part of the java.util package. Nevertheless, to learn how linked data structures work, we ll construct a simplified example of a linked list. Chapter 10 31

24 Linked Lists, cont. Chapter 10 32

25 Linked Lists, cont. Links, shown as arrows in the previous diagram, are implemented as references and are instance variables of the node type. The reference marked head is a variable of the node type which provides access to the first node in the linked list, but is not itself one of the nodes. Chapter 10 33

26 Linked Lists, cont. Each node is an object of a class that has (at least) two instance variables: the data the link. Chapter 10 34

27 class ListNode Linked Lists, cont. Chapter 10 35

28 Detecting the Last Node There must be means for detecting the last node. A link instance variable with the value null indicates the last node. A reference to the linked list with the value null indicates an empty linked list. The value of the link instance variable is tested using ==. Chapter 10 36

29 A Linked List of Strings class StringLinkedList Chapter 10 37

30 Moving Down a Linked List Chapter 10 38

31 Adding a Node at the Start Chapter 10 39

32 Inner Classes An inner class is a class defined within another class. Chapter 10 48

33 Defining an Inner Class public class OuterClass { OuterClass_Instance_Variables OuterClass_Methods private class InnerClass { InnerClass_Instance_Variables InnerClass_Methods } } Chapter 10 49

34 Access to Members The inner and outer classes methods have access to each other s methods and instance variables, even when they are declared private. Chapter 10 50

35 Node Inner Classes By making the node class an inner class, data structure classes become self-contained. Further, the accessor and mutator methods of the inner class can be eliminated since instance variables of an inner class are accessible directly. Chapter 10 51

36 Node Inner Classes, cont. class StringLinkedListSelfContained Chapter 10 52

37 Node Inner Classes, cont. class StringLinkedListSelfContained, cont. Chapter 10 53

38 Iterators With a collection of objects, such as the nodes of a linked list, we often need to step through all the objects to perform some action on each object. An iterator allows us to step through a collection of objects. Chapter 10 54

39 Iterators, cont. The loop control variable of a for loop functions as an iterator for an array. for (int i = 0; i < a.length, i++) process a[i]; Chapter 10 55

40 Iterators, cont. Similarly, an instance variable capable of referencing a node, can serve the same purpose as the loop control variable in a for loop. Another instance variable capable of referencing a node can follow behind to provide access to the previous node. Chapter 10 57

41 Advancing to the Next Node Chapter 10 61

42 Adding a Node Chapter 10 62

43 Deleting a Node Chapter 10 63

44 Variations on a Linked List A reference to the last node in a linked list can be useful. public ListNode head; public ListNode tail; A linked list can contain (or reference) any kind of data. Chapter 10 69

45 Variations on a Linked List, cont. A linked list can contain different kinds of objects private class ListNode { } private Object data; private ListNode link;... Chapter 10 70

46 Variations on a Linked List, cont. An additional reference can be added to reference the previous node, producing a doubly-linked list. private class ListNode { } private Object data; private ListNode next; private ListNode previous;... Chapter 10 71

47 Variations on a Linked List, cont. Chapter 10 72

48 Variations on a Linked List, cont. The last node in a singly-linked list can reference the first node, producing a circularly-linked list. The last node in a doubly-linked list can reference the first node with its next reference, and the first node can reference the last node with its previous reference, producing a doubly-circularly-linked list. Chapter 10 73

49 Introduction to Generics Java 5.0 allows definitions, called generics, that include parameters for types. Generics can be subtle and full of pitfalls. We provide an introduction to generics. Serious programming with generics is presented in more advanced texts. Chapter 10 75

50 Generic Basics Classes and methods can have a type parameter. Any class type can be substituted for the type parameter, producing a specific class type or method. Chapter 10 76

51 Generic Basics, cont. class Sample<T> Chapter 10 77

52 Generic Basics, cont. A class definition with a type parameter is stored in a file and compiled just like any other class. When used in code a class type must be specified so that it can be substituted for the type parameter. Chapter 10 78

53 Generic Basics, cont. example Sample<String> o1 = new Sample<String>(); o1.setdata( Hello ); Sample<Species> o2 = new Sample<Species>(); Species s = new Species(); <code to set the data for object s> o2.setdata(s); Chapter 10 79

54 Generic Basics, cont. You cannot substitute a primitive type for a type parameter. You must instead use a class type. Chapter 10 80

55 Programming Example: A Generic Linked List class LinkedList<E> Chapter 10 81

56 Programming Example: A Generic Linked List, cont. class LinkedList<E>, cont. Chapter 10 82

57 Programming Example: A Generic Linked List, cont. class GenericDemo Chapter 10 83

58 Generic Constructor The class name in a parameterized class definition has a type parameter attached. But, a generic constructor name has no type parameter and the type parameter is not used in the heading of the constructor definition. public LinkedList() not public LinkedList<e>() // ILLEGAL Chapter 10 85

Dynamic Data Structures and Generics. Chapter 10

Dynamic Data Structures and Generics. Chapter 10 Dynamic Data Structures and Generics 1 Reminders Project 6 due Nov 03 @ 10:30 pm Project 5 grades released (or by tonight): regrade requests due by next Friday Exam 2: handed back next week, solution discussed

More information

Dynamic Data Structures and Generics

Dynamic Data Structures and Generics Dynamic Data Structures and Generics Reading: Savitch ch. 12 Objectives Introduce Abstract Data Types (ADTs) and review interfaces Introduce Java's ArrayList class Learn about linked lists and inner classes

More information

11/2/ Dynamic Data Structures & Generics. Objectives. Array-Based Data Structures: Outline. Harald Gall, Prof. Dr.

11/2/ Dynamic Data Structures & Generics. Objectives. Array-Based Data Structures: Outline. Harald Gall, Prof. Dr. 12. Dynamic Data Structures & Generics Harald Gall, Prof. Dr. Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch Objectives! Define and use an instance of ArrayList! Describe general idea

More information

Dynamic Data Structures

Dynamic Data Structures Chapter 10 Dynamic Data Structures Vectors Linked Data Structures Chapter 10 Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Overview This chapter is about data structures that

More information

CSED233: Data Structures (2018F) Lecture3: Arrays and Linked Lists

CSED233: Data Structures (2018F) Lecture3: Arrays and Linked Lists (2018F) Lecture3: Arrays and Linked Lists Daijin Kim CSE, POSTECH dkim@postech.ac.kr Array Definition An array is a sequenced collection of variables all of the same type. Each variable, or cell, in an

More information

Arrays. Array Definition

Arrays. Array Definition Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Arrays Arrays 1 Array Definition An array

More information

Implementation. Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations

Implementation. Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations Readings List Implementations Chapter 20.2 Objectives Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations Additional references:

More information

Dynamic Data Structures

Dynamic Data Structures Dynamic Data Structures We have seen that the STL containers vector, deque, list, set and map can grow and shrink dynamically. We now examine how some of these containers can be implemented in C++. To

More information

Arrays & Linked Lists

Arrays & Linked Lists Arrays & Linked Lists Part 1: Arrays Array Definition An array is a sequenced collection of variables all of the same type. Each variable, or cell, in an array has an index, which uniquely refers to the

More information

Copyright 2007 Pearson Addison-Wesley Copyright 2018 Aiman Hanna All rights reserved

Copyright 2007 Pearson Addison-Wesley Copyright 2018 Aiman Hanna All rights reserved Comp 249 Programming Methodology Chapter 13 Generics & The ArrayList Class Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has

More information

Topic 6: Inner Classes

Topic 6: Inner Classes Topic 6: Inner Classes What's an inner class? A class defined inside another class Three kinds: inner classes static nested classes anonymous classes this lecture: Java mechanisms later: motivation & typical

More information

CS201 ArrayLists, Generics, and Dynamic Data Structures (Chapters 14, 15)

CS201 ArrayLists, Generics, and Dynamic Data Structures (Chapters 14, 15) CS201 ArrayLists, Generics, and Dynamic Data Structures (Chapters 14, 15) A data structure is a software construct used to organize our data in a particular way. Some common data structures include lists,

More information

Advanced Java Concepts Unit 2: Linked Lists.

Advanced Java Concepts Unit 2: Linked Lists. Advanced Java Concepts Unit 2: Linked Lists. The List interface defines the structure of a linear collection. Here are some of its methods. boolean add( E element ) Appends the element to the end of the

More information

Copyright 2007 Pearson Addison-Wesley Copyright 2019 Aiman Hanna All rights reserved

Copyright 2007 Pearson Addison-Wesley Copyright 2019 Aiman Hanna All rights reserved Comp 249 Programming Methodology Chapter 15 Linked Data Structure Part A Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been

More information

Chapter 17: Linked Lists

Chapter 17: Linked Lists Chapter 17: Linked Lists 17.1 Introduction to the Linked List ADT Introduction to the Linked List ADT Linked list: set of data structures (nodes) that contain references to other data structures list head

More information

Linked Lists

Linked Lists Linked Lists 2-17-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? Can you tell me what a linked list is and what

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 07: Linked Lists and Iterators MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Linked Lists 2 Introduction Linked List Abstract Data Type General Implementation of the ListADT

More information

+ Abstract Data Types

+ Abstract Data Types Linked Lists Abstract Data Types An Abstract Data Type (ADT) is: a set of values a set of operations Sounds familiar, right? I gave a similar definition for a data structure. Abstract Data Types Abstract

More information

Programming overview

Programming overview Programming overview Basic Java A Java program consists of: One or more classes A class contains one or more methods A method contains program statements Each class in a separate file MyClass defined in

More information

Chapter 4.!Data Abstraction: The Walls! 2011 Pearson Addison-Wesley. All rights reserved 4-1

Chapter 4.!Data Abstraction: The Walls! 2011 Pearson Addison-Wesley. All rights reserved 4-1 Chapter 4!Data Abstraction: The Walls! 2011 Pearson Addison-Wesley. All rights reserved 4-1 2015-09-29 11:44:25 1/45 Chapter-04.pdf (#4) bubblesort(int[] a) { int last = a.length - 1; while (last > 0)

More information

AP Computer Science Chapter 10 Implementing and Using Classes Study Guide

AP Computer Science Chapter 10 Implementing and Using Classes Study Guide AP Computer Science Chapter 10 Implementing and Using Classes Study Guide 1. A class that uses a given class X is called a client of X. 2. Private features of a class can be directly accessed only within

More information

Introduction to Linked Data Structures

Introduction to Linked Data Structures Introduction to Linked Data Structures A linked data structure consists of capsules of data known as nodes that are connected via links Links can be viewed as arrows and thought of as one way passages

More information

HST 952. Computing for Biomedical Scientists Lecture 8

HST 952. Computing for Biomedical Scientists Lecture 8 Harvard-MIT Division of Health Sciences and Technology HST.952: Computing for Biomedical Scientists HST 952 Computing for Biomedical Scientists Lecture 8 Outline Vectors Streams, Input, and Output in Java

More information

Chapter 17: Linked Lists

Chapter 17: Linked Lists Chapter 17: Linked Lists Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Pearson Addison-Wesley Education, Inc. Publishing as Pearson Addison-Wesley 17.1 Introduction to the

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

CS231 - Spring 2017 Linked Lists. ArrayList is an implementation of List based on arrays. LinkedList is an implementation of List based on nodes.

CS231 - Spring 2017 Linked Lists. ArrayList is an implementation of List based on arrays. LinkedList is an implementation of List based on nodes. CS231 - Spring 2017 Linked Lists List o Data structure which stores a fixed-size sequential collection of elements of the same type. o We've already seen two ways that you can store data in lists in Java.

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation

More information

A First Look At Java. Didactic Module 13 Programming Languages - EEL670 1

A First Look At Java. Didactic Module 13 Programming Languages - EEL670 1 A First Look At Java Didactic Module 13 Programming Languages - EEL670 1 Outline Thinking about objects Simple expressions and statements Class definitions About references and pointers Getting started

More information

CMSC 341 Lecture 7 Lists

CMSC 341 Lecture 7 Lists CMSC 341 Lecture 7 Lists Today s Topics Linked Lists vs Arrays Nodes Using Linked Lists Supporting Actors (member variables) Overview Creation Traversal Deletion UMBC CMSC 341 Lists 2 Linked Lists vs Arrays

More information

List ADT. B/W Confirming Pages

List ADT. B/W Confirming Pages wu3399_ch8.qxd //7 :37 Page 98 8 List ADT O b j e c t i v e s After you have read and studied this chapter, you should be able to Describe the key features of the List ADT. the List ADT using an array

More information

Computer Science 62. Bruce/Mawhorter Fall 16. Midterm Examination. October 5, Question Points Score TOTAL 52 SOLUTIONS. Your name (Please print)

Computer Science 62. Bruce/Mawhorter Fall 16. Midterm Examination. October 5, Question Points Score TOTAL 52 SOLUTIONS. Your name (Please print) Computer Science 62 Bruce/Mawhorter Fall 16 Midterm Examination October 5, 2016 Question Points Score 1 15 2 10 3 10 4 8 5 9 TOTAL 52 SOLUTIONS Your name (Please print) 1. Suppose you are given a singly-linked

More information

Java Primer 1: Types, Classes and Operators

Java Primer 1: Types, Classes and Operators Java Primer 1 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Java Primer 1: Types,

More information

ADTs, Arrays, Linked Lists

ADTs, Arrays, Linked Lists 1 ADTs, Arrays, Linked Lists Outline and Required Reading: ADTs ( 2.1) Using Arrays ( 3.1) Linked Lists ( 3.2, 3.3, 3.4) CSE 2011, Winter 2017 Instructor: N. Vlajic Data Type 2 A data type is a classification

More information

Ticket Machine Project(s)

Ticket Machine Project(s) Ticket Machine Project(s) Understanding the basic contents of classes Produced by: Dr. Siobhán Drohan (based on Chapter 2, Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes,

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation

More information

Objects and Iterators

Objects and Iterators Objects and Iterators Can We Have Data Structures With Generic Types? What s in a Bag? All our implementations of collections so far allowed for one data type for the entire collection To accommodate a

More information

Timing for Interfaces and Abstract Classes

Timing for Interfaces and Abstract Classes Timing for Interfaces and Abstract Classes Consider using abstract classes if you want to: share code among several closely related classes declare non-static or non-final fields Consider using interfaces

More information

ITI Introduction to Computing II

ITI Introduction to Computing II index.pdf March 17, 2013 1 ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 17, 2013 Definitions A List is a linear abstract

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Chapter 10. Pointers and Dynamic Arrays. Copyright 2016 Pearson, Inc. All rights reserved.

Chapter 10. Pointers and Dynamic Arrays. Copyright 2016 Pearson, Inc. All rights reserved. Chapter 10 Pointers and Dynamic Arrays Copyright 2016 Pearson, Inc. All rights reserved. Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic

More information

Chapter 9 Introduction to Arrays. Fundamentals of Java

Chapter 9 Introduction to Arrays. Fundamentals of Java Chapter 9 Introduction to Arrays Objectives Write programs that handle collections of similar items. Declare array variables and instantiate array objects. Manipulate arrays with loops, including the enhanced

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 02: Using Objects MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Using Objects 2 Introduction to Object Oriented Programming Paradigm Objects and References Memory Management

More information

SPRING 13 CS 0007 FINAL EXAM V2 (Roberts) Your Name: A pt each. B pt each. C pt each. D or 2 pts each

SPRING 13 CS 0007 FINAL EXAM V2 (Roberts) Your Name: A pt each. B pt each. C pt each. D or 2 pts each Your Name: Your Pitt (mail NOT peoplesoft) ID: Part Question/s Points available Rubric Your Score A 1-6 6 1 pt each B 7-12 6 1 pt each C 13-16 4 1 pt each D 17-19 5 1 or 2 pts each E 20-23 5 1 or 2 pts

More information

Lists. The List ADT. Reading: Textbook Sections

Lists. The List ADT. Reading: Textbook Sections Lists The List ADT Reading: Textbook Sections 3.1 3.5 List ADT A list is a dynamic ordered tuple of homogeneous elements A o, A 1, A 2,, A N-1 where A i is the i-th element of the list The position of

More information

Lecture 4. Strings, Wrappers, & Containers

Lecture 4. Strings, Wrappers, & Containers Lecture 4 Strings, Wrappers, & Containers Announcements for This Lecture Readings pp. 175 181 Sections 2.5, 3.1.2-3.1.3 Also Section 5.2 PLive (optional): Lesson 2-5 Lessons 5-1 and 5-2 Assignments Assignment

More information

Properties of an identifier (and the object it represents) may be set at

Properties of an identifier (and the object it represents) may be set at Properties of an identifier (and the object it represents) may be set at Compile-time These are static properties as they do not change during execution. Examples include the type of a variable, the value

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 16 References and linked nodes reading: 16.1 2 Value semantics value semantics: Behavior where values are copied when assigned, passed as parameters, or returned. All primitive

More information

Purpose of Review. Review some basic C++ Familiarize us with Weiss s style Introduce specific constructs useful for implementing data structures

Purpose of Review. Review some basic C++ Familiarize us with Weiss s style Introduce specific constructs useful for implementing data structures C++ Review 1 Purpose of Review Review some basic C++ Familiarize us with Weiss s style Introduce specific constructs useful for implementing data structures 2 Class The Class defines the data structure

More information

Wrapper Classes double pi = new Double(3.14); 3 double pi = new Double("3.14"); 4... Zheng-Liang Lu Java Programming 290 / 321

Wrapper Classes double pi = new Double(3.14); 3 double pi = new Double(3.14); 4... Zheng-Liang Lu Java Programming 290 / 321 Wrapper Classes To treat values as objects, Java supplies standard wrapper classes for each primitive type. For example, you can construct a wrapper object from a primitive value or from a string representation

More information

Recitation 02/02/07 Defining Classes and Methods. Chapter 4

Recitation 02/02/07 Defining Classes and Methods. Chapter 4 Recitation 02/02/07 Defining Classes and Methods 1 Miscellany Project 2 due last night Exam 1 (Ch 1-4) Thursday, Feb. 8, 8:30-9:30pm PHYS 112 Sample Exam posted Project 3 due Feb. 15 10:00pm check newsgroup!

More information

CE204 Data Structures and Algorithms Part 1

CE204 Data Structures and Algorithms Part 1 CE204 Data Structures and Algorithms Part 1 11/01/2018 CE204 Part 1 1 Recommended Reading The most useful book for much of the material in this module is Data Structures and Algorithm Analysis in Java

More information

School of Computer Science CPS109 Course Notes Set 7 Alexander Ferworn Updated Fall 15 CPS109 Course Notes 7

School of Computer Science CPS109 Course Notes Set 7 Alexander Ferworn Updated Fall 15 CPS109 Course Notes 7 CPS109 Course Notes 7 Alexander Ferworn Unrelated Facts Worth Remembering The most successful people in any business are usually the most interesting. Don t confuse extensive documentation of a situation

More information

Chapter 10 Pointers and Dynamic Arrays. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo

Chapter 10 Pointers and Dynamic Arrays. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo Chapter 10 Pointers and Dynamic Arrays 1 Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic Classes, Pointers, Dynamic Arrays The this

More information

In Java there are three types of data values:

In Java there are three types of data values: In Java there are three types of data values: primitive data values (int, double, boolean, etc.) arrays (actually a special type of object) objects An object might represent a string of characters, a planet,

More information

String is a Class; Quoted Text is an Object

String is a Class; Quoted Text is an Object String is a Class; Quoted Text is an Object String s = "abc d"; Indexed characters: 01234 abc d s.length() is 5 s.charat(2) is 'c' s.substring(2) is "c d" s.substring(1,3) is "bc" @3e9cff "abc d" length()

More information

Data Structures. COMS W1007 Introduction to Computer Science. Christopher Conway 1 July 2003

Data Structures. COMS W1007 Introduction to Computer Science. Christopher Conway 1 July 2003 Data Structures COMS W1007 Introduction to Computer Science Christopher Conway 1 July 2003 Linked Lists An array is a list of elements with a fixed size, accessed by index. A more flexible data structure

More information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Iterator 1 (part I) Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 24, 2013 Abstract These lecture notes are meant to be looked

More information

Welcome to CSL 201 Data Structures

Welcome to CSL 201 Data Structures Welcome to CSL 201 Data Structures Narayanan (CK) C Krishnan Department of Computer Science and Engineering IIT Ropar Administrative Trivia Course Structure n 3-0-4 (5 credits) Class Timings n Monday 9.55-10.45

More information

Another IS-A Relationship

Another IS-A Relationship Another IS-A Relationship Not all classes share a vertical relationship. Instead, some are supposed to perform the specific methods without a vertical relationship. Consider the class Bird inherited from

More information

Winter 2016 COMP-250: Introduction to Computer Science. Lecture 6, January 28, 2016

Winter 2016 COMP-250: Introduction to Computer Science. Lecture 6, January 28, 2016 Winter 2016 COMP-250: Introduction to Computer Science Lecture 6, January 28, 2016 Java Generics element next _, Java Generics Java Generics (Doubly) Linked List (Doubly) Linked List Node element next

More information

Today s Agenda. Quick Review

Today s Agenda. Quick Review Today s Agenda TA Information Homework 1, Due on 6/17 Quick Review Finish Objects and Classes Understanding class definitions 1 Quick Review What is OOP? How is OOP different from procedural programming?

More information

Computer Science is...

Computer Science is... Computer Science is... Machine Learning Machine learning is the study of computer algorithms that improve automatically through experience. Example: develop adaptive strategies for the control of epileptic

More information

Chapter 7 Constructors and Other Tools. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo

Chapter 7 Constructors and Other Tools. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo Chapter 7 Constructors and Other Tools 1 Learning Objectives Constructors Definitions Calling More Tools const parameter modifier Inline functions Static member data Vectors Introduction to vector class

More information

Linked Lists. It s all connected

Linked Lists. It s all connected Linked Lists It s all connected Linked list: a data structure used to represent an ordered list Consists of a sequence of nodes A node consists of a data item and a reference to the next node -- the connecting

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 07: Linked Lists MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Linked Lists 2 Introduction Linked List Abstract Data Type SinglyLinkedList ArrayList Keep in Mind Introduction:

More information

CS 61B (Clancy, Yelick) Solutions and grading standards for exam 2 Spring 2001 Exam information

CS 61B (Clancy, Yelick) Solutions and grading standards for exam 2 Spring 2001 Exam information Exam information 345 students took the exam. Scores ranged from 3 to 25, with a median of 19 and an average of 18.1. There were 176 scores between 19 and 25, 125 between 12.5 and 18.5, 42 between 6 and

More information

Declarations and Access Control SCJP tips

Declarations and Access Control  SCJP tips Declarations and Access Control www.techfaq360.com SCJP tips Write code that declares, constructs, and initializes arrays of any base type using any of the permitted forms both for declaration and for

More information

CSE 1223: Introduction to Computer Programming in Java Chapter 6 Arrays

CSE 1223: Introduction to Computer Programming in Java Chapter 6 Arrays CSE 1223: Introduction to Computer Programming in Java Chapter 6 Arrays 1 A New Problem Consider the following task: Input N real numbers representing temperature measurements and compute the following:

More information

Linked Lists. Linked List Nodes. Walls and Mirrors Chapter 5 10/25/12. A linked list is a collection of Nodes: item next -3.

Linked Lists. Linked List Nodes. Walls and Mirrors Chapter 5 10/25/12. A linked list is a collection of Nodes: item next -3. Linked Lists Walls and Mirrors Chapter 5 Linked List Nodes public class Node { private int item; private Node next; public Node(int item) { this(item,null); public Node(int item, Node next) { setitem(item);

More information

Objects and Classes. Basic OO Principles. Classes in Java. Mark Allen Weiss Copyright 2000

Objects and Classes. Basic OO Principles. Classes in Java. Mark Allen Weiss Copyright 2000 Objects and Classes Mark Allen Weiss Copyright 2000 8/30/00 1 Basic OO Principles Objects are entities that have structure and state. Each object defines operations that may access or manipulate that state.

More information

Module 5. Arrays. Adapted from Absolute Java, Rose Williams, Binghamton University

Module 5. Arrays. Adapted from Absolute Java, Rose Williams, Binghamton University Module 5 Arrays Adapted from Absolute Java, Rose Williams, Binghamton University Introduction to Arrays An array is a data structure used to process a collection of data that is all of the same type An

More information

CS61B Lecture #24. Today: Java support for generic programming. Readings for today: A Java Reference, Chapter 10.

CS61B Lecture #24. Today: Java support for generic programming. Readings for today: A Java Reference, Chapter 10. CS61B Lecture #24 Today: Java support for generic programming Readings for today: A Java Reference, Chapter 10. Readings for Monday: Data Structures, 6.4. Last modified: Fri Oct 19 19:33:03 2012 CS61B:

More information

Array. Prepared By - Rifat Shahriyar

Array. Prepared By - Rifat Shahriyar Java More Details Array 2 Arrays A group of variables containing values that all have the same type Arrays are fixed length entities In Java, arrays are objects, so they are considered reference types

More information

Problem 1: Building and testing your own linked indexed list

Problem 1: Building and testing your own linked indexed list CSCI 200 Lab 8 Implementing a Linked Indexed List In this lab, you will be constructing a linked indexed list. You ll then use your list to build and test a new linked queue implementation. Objectives:

More information

Stacks (5.1) Abstract Data Types (ADTs) CSE 2011 Winter 2011

Stacks (5.1) Abstract Data Types (ADTs) CSE 2011 Winter 2011 Stacks (5.1) CSE 2011 Winter 2011 26 January 2011 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations on the data Error

More information

Objects and Classes. 1 Creating Classes and Objects. CSCI-UA 101 Objects and Classes

Objects and Classes. 1 Creating Classes and Objects. CSCI-UA 101 Objects and Classes Based on Introduction to Java Programming, Y. Daniel Liang, Brief Version, 10/E 1 Creating Classes and Objects Classes give us a way of defining custom data types and associating data with operations on

More information

Computer Science 62. Midterm Examination

Computer Science 62. Midterm Examination Computer Science 62 Bruce/Mawhorter Fall 16 Midterm Examination October 5, 2016 Question Points Score 1 15 2 10 3 10 4 8 5 9 TOTAL 52 Your name (Please print) 1. Suppose you are given a singly-linked list

More information

CS32 Discussion Sec.on 1B Week 2. TA: Zhou Ren

CS32 Discussion Sec.on 1B Week 2. TA: Zhou Ren CS32 Discussion Sec.on 1B Week 2 TA: Zhou Ren Agenda Copy Constructor Assignment Operator Overloading Linked Lists Copy Constructors - Motivation class School { public: }; School(const string &name); string

More information

Chapter 4: Writing Classes

Chapter 4: Writing Classes Chapter 4: Writing Classes Java Software Solutions Foundations of Program Design Sixth Edition by Lewis & Loftus Writing Classes We've been using predefined classes. Now we will learn to write our own

More information

Chapter 13. Interfaces and Inner Classes

Chapter 13. Interfaces and Inner Classes Chapter 13 Interfaces and Inner Classes Interfaces An interface is something like an extreme case of an abstract class However, an interface is not a class It is a type that can be satisfied by any class

More information

CS 270 Algorithms. Oliver Kullmann. Binary search. Lists. Background: Pointers. Trees. Implementing rooted trees. Tutorial

CS 270 Algorithms. Oliver Kullmann. Binary search. Lists. Background: Pointers. Trees. Implementing rooted trees. Tutorial Week 7 General remarks Arrays, lists, pointers and 1 2 3 We conclude elementary data structures by discussing and implementing arrays, lists, and trees. Background information on pointers is provided (for

More information

CS 302: Introduction to Programming in Java. Lecture 12

CS 302: Introduction to Programming in Java. Lecture 12 CS 302: Introduction to Programming in Java Lecture 12 1 Review What is the 3-step processing for using Objects (think Scanner and Random)? Do objects use static methods or non-static (how do you know)?

More information

Arrays and ArrayLists. David Greenstein Monta Vista High School

Arrays and ArrayLists. David Greenstein Monta Vista High School Arrays and ArrayLists David Greenstein Monta Vista High School Array An array is a block of consecutive memory locations that hold values of the same data type. Individual locations are called array s

More information

Understanding class definitions. Looking inside classes (based on lecture slides by Barnes and Kölling)

Understanding class definitions. Looking inside classes (based on lecture slides by Barnes and Kölling) Understanding class definitions Looking inside classes (based on lecture slides by Barnes and Kölling) Main Concepts fields constructors methods parameters assignment statements Ticket Machines (an external

More information

Review: Array Initializer Lists

Review: Array Initializer Lists More on Arrays Review of Arrays of ints, doubles, chars Arrays of objects Command line arguments The ArrayList class Javadoc Review Lecture 8 notes and L&L 7.1 7.2 Reading for this lecture: L&L 7.3 7.7,

More information

Object Oriented Modeling

Object Oriented Modeling Object Oriented Modeling Object oriented modeling is a method that models the characteristics of real or abstract objects from application domain using classes and objects. Objects Software objects are

More information

Recitation 3 Class and Objects

Recitation 3 Class and Objects 1.00/1.001 Introduction to Computers and Engineering Problem Solving Recitation 3 Class and Objects Spring 2012 1 Scope One method cannot see variables in another; Variables created inside a block: { exist

More information

Chapter 6. Arrays. Array Basics Arrays in Classes and Methods Programming with Arrays and Classes Sorting Arrays Multidimensional Arrays

Chapter 6. Arrays. Array Basics Arrays in Classes and Methods Programming with Arrays and Classes Sorting Arrays Multidimensional Arrays Chapter 6 Arrays Array Basics Arrays in Classes and Methods Programming with Arrays and Classes Sorting Arrays Multidimensional Arrays Chapter 6 Java: an Introduction to Computer Science & Programming

More information

Linked lists. Insert Delete Lookup Doubly-linked lists. Lecture 6: Linked Lists

Linked lists. Insert Delete Lookup Doubly-linked lists. Lecture 6: Linked Lists Linked lists Insert Delete Lookup Doubly-linked lists Lecture 6: Linked Lists Object References When you declare a variable of a non-primitive type you are really declaring a reference to that object String

More information

Arrays. Chapter Arrays What is an Array?

Arrays. Chapter Arrays What is an Array? Chapter 8 Arrays 81 Arrays 811 What is an Array? To motivate why we might be interested in using arrays, let us implement an app that creates a collection of doubles We will keep track of the number of

More information

Prelim 1. CS2110, October 2, 2014, 5:30 PM Extra Total Question TrueFalse Multiple Object Oriented

Prelim 1. CS2110, October 2, 2014, 5:30 PM Extra Total Question TrueFalse Multiple Object Oriented Prelim 1 CS2110, October 2, 2014, 5:30 PM 1 2 3 4 5 Extra Total Question TrueFalse Multiple Object Oriented Recursion Lists Extra Credit Max 20 20 30 15 15 5 100 Score Grader The exam is closed book and

More information

Agenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java

Agenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda

More information

FOR Loop. FOR Loop has three parts:initialization,condition,increment. Syntax. for(initialization;condition;increment){ body;

FOR Loop. FOR Loop has three parts:initialization,condition,increment. Syntax. for(initialization;condition;increment){ body; CLASSROOM SESSION Loops in C Loops are used to repeat the execution of statement or blocks There are two types of loops 1.Entry Controlled For and While 2. Exit Controlled Do while FOR Loop FOR Loop has

More information

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls. Jump Statements The keyword break and continue are often used in repetition structures to provide additional controls. break: the loop is terminated right after a break statement is executed. continue:

More information

CSC Java Programming, Fall Java Data Types and Control Constructs

CSC Java Programming, Fall Java Data Types and Control Constructs CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Chapter 9 Initializing a non-static data member in the class definition is a syntax error 1 9.2 Time Class Case Study In Fig. 9.1, the class definition is enclosed in the following

More information

Write the code to create an enhanced for loop that will go through every member of an ArrayList <String> myarray and print it out to the console.

Write the code to create an enhanced for loop that will go through every member of an ArrayList <String> myarray and print it out to the console. COSC 201 Review Questions Final Fall 2015 Write the code to create an enhanced for loop that will go through every member of an ArrayList myarray and print it out to the console. Give the code

More information

CHAPTER 7 OBJECTS AND CLASSES

CHAPTER 7 OBJECTS AND CLASSES CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and

More information

Enums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed.

Enums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. Enums Introduction In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. The Final Tag To display why this is useful, I m going to

More information

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location

More information