Converting Collections to Arrays. A Bad Approach to Array Conversion. A Better Approach to Array Conversion. public Object[] toarray();
|
|
- Kenneth Walters
- 5 years ago
- Views:
Transcription
1 Converting Collections to Arrays Every Java collection can be converted to an array This is part of the basic Collection<T> interface The most elementary form of this method produces an array of base-type (java.lang.object): Class #12: Converting Collections to Arrays; Linked Lists public Object[] toarray(); This method can be quite simple, although there are some complications to which we must pay attention Software Design III (CS 340): M. Allen, 19 Feb. 19 Tuesday, 19 Feb Software Design III (CS 340) 2 A Bad Approach to Array Conversion The simplest approach to such a method, for something like an ArrayList, is actually a bad idea public Object[] toarray() return theitems; This seemingly simple approach essentially makes the array contained by the list object a public entity After running this method, other classes would be able to directly access the array, adding data wherever desired, including in places that are outside of the bounds given by the size() of the list This goes against the whole idea of encapsulating data as private members of a class A Better Approach to Array Conversion Instead of direct access to the contained array, a better approach is to create a new one, and copy over public Object[] toarray() Object[] copy = new Object[theSize]; for (int i = 0; i < thesize; i++) copy[i] = theitems[i]; return copy; Tuesday, 19 Feb Software Design III (CS 340) 3 Tuesday, 19 Feb Software Design III (CS 340) 4 1
2 Important: Java Copies are Shallow A method like the one just shown creates a brand-new array At the same time, the items inside the array are not new This is default Java Collection behavior: copies and array conversions are always shallow copies: changes made to such items will change the objects in both collections in which they are referenced ArrayList<JFrame> framelist = new ArrayList<>(); for (int i = 0; i < 5; i++) framelist.add(new JFrame("Old Title")); System.out.println(frameList.get(0).getTitle()); Object[] framearray = framelist.toarray(); ((JFrame) framearray[0]).settitle("new Title"); System.out.println(frameList.get(0).getTitle()); Old Title New Title (Changing in array also changes in list) Complication: Generic Arrays Cannot Be Instantiated Suppose we want to convert a generic ArrayList<T> to an array of the same type: public T[] toarray() T[] array; array = new T[theSize]; for (int i = 0; i < thesize; i++) array[i] = theitems[i]; return array; This won t compile! While we can declare the array to have generic type, we cannot instantiate it: we are required to give it an actual type first error: Cannot create a generic array of T Tuesday, 19 Feb Software Design III (CS 340) 5 Tuesday, 19 Feb Software Design III (CS 340) 6 Getting around the Generic Array Issue To set the return type, we need to supply something that is guaranteed to have a non-generic specified type: import java.lang.reflect.array;... We can use Java s ability to do reflection to create a new array of the same class-type as the input array (works even if empty) public T[] toarray(t[] a) T[] array = (T[]) Array.newInstance(a.getClass().getComponentType(), size()); Getting Around the Generic Array Issue The reason to include the input array, rather than just get the type of the list data itself is that we can use the input array to provide type-checking at the calling site: MyArrayList<Integer> lsti = new MyArrayList<Integer>(); MyArrayList<Double> lstd = new MyArrayList<Double>(); Integer[] ints = lsti.toarray(new Integer[0]); Double[] dubs = lstd.toarray(new Double[lstd.size()] ); for (int i = 0; i < size(); i++) array[i] = theitems[i]; return array; Since newinstance() returns an Object, we must cast to T[] getclass(): from java.lang.object getcomponenttype(): from java.lang.class (used specifically to get type of an array element) Since the array typing and casting occurs inside of toarray() method, we can be certain that, if the method completes, we have actual (non-erased) arrays of the given types (Integer or Double) While we can convert even with an empty array, there turns out to be a reason to use the second version of this sort of call in most cases. Tuesday, 19 Feb Software Design III (CS 340) 7 Tuesday, 19 Feb Software Design III (CS 340) 8 2
3 A Small Efficiency All else being equal, we will prefer: Double[] dubs = lstd.toarray(new Double[lstd.size()] ); This turns out to save on object typing, creation and casting, and can run significantly faster overall. The Linked List ADT head: public T[] toarray(t[] a) if (a.length >= size()) for (int i = 0; i < size(); i++) a[i] = theitems[i]; if (a.length > size()) a[size()] = null; return a; // code to create new array if needed... If we can fit the current list into the input array, then simply copy over without need for typing, array creation, casting. If input array larger than needed, set element at end of list-data to null. Warning: this will be a problem when list could contain null items itself, so we always prefer to use size of list for input array if at all possible. Tuesday, 19 Feb Software Design III (CS 340) 9 General idea: an implementation of List interface/adt, using a set of linked nodes, with size() == # nodes Each node two basic attributes: Data: object that it stores (simple or complex) Next link: a variable reference to the next node in list End of list links to null object (can be used as a marker) Tuesday, 19 Feb Software Design III (CS 340) 10 Doubly Linked Lists head: Actual java.util. class is slightly more complex, since each node has two separate links A bi-directional, doubly-linked list s link to both the next and previous nodes in list order Front: prev links to null object Back: next links to null object Tuesday, 19 Feb Software Design III (CS 340) 11 One Last Complication: Sentinel s :head tail: For convenience, implementations will use one/more sentinel nodes These track the start (head) or end (tail) of the list (and have no data) Can make code easier to write, but don t generally change basic behavior Tuesday, 19 Feb Software Design III (CS 340) 12 3
4 s private static class <T> private T data; private <T> prev; private <T> next; public ( T d, <T> p, <T> n ) data = d; prev = p; next = n; Basic data component of list is a nested, private static class Packaged inside list class itself private to that class, so it cannot be created anywhere else by itself It carries the type of the list class instance, <T> Making the class static separates it from the parent class, so it has no requirement for a linked instance of the parent to exist This simplifies things, and can improve memory management This is a good approach, so long as the nested class doesn t need direct access to other nonstatic members (variables, methods) of the containing class Containing List class does have direct access to elements, whether is static or not Creating the public class My<T> implements Iterable<T> private int thesize; private <T> head; private <T> tail; public My() clear(); public void clear() head = new <T>( null, null, null ); tail = new <T>( null, head, null ); head.next = tail; thesize = 0; Use head/tail nodes to indicate start/end of list Can access private next and prev link variables in directly, since it is a nested member class, contained entirely inside the List class itself. Tuesday, 19 Feb Software Design III (CS 340) 13 Tuesday, 19 Feb Software Design III (CS 340) 14 Creating the prev: :head tail: size: 0 head = new <T>( null, null, null ); tail = new <T>( null, head, null ); head.next = tail; Iterators private class Iterator implements java.util.iterator<t> private <T> current = head.next; public boolean hasnext() return current!= tail; public T next() if(!hasnext() ) throw new java.util.nosuchelementexception(); T nextitem = current.data; current = current.next; return nextitem; public void remove() My.this.remove( current.prev ); This private inner class is not static It can easily directly access any other elements of the List class it needs. Use the head/tail nodes as indicators of the start/end of the list Use the next/prev variable references to navigate from node to node in the list. Tuesday, 19 Feb Software Design III (CS 340) 15 Tuesday, 19 Feb Software Design III (CS 340) 16 4
5 This Week Topic: Lists Read: Text, chapter 03 Meetings: as usual Monday Wednesday: 2205 Centennial Friday: Lab, 16/17 Wing Homework 02: due Friday, 01 March (5:00 PM) Office Hours: Wing 210 Monday: 9:00 AM 10:30 AM Tuesday: 3:00 PM 4:00 PM Wednesday: 9:00 AM 10:30 AM Thursday: 2:00 PM 3:00 PM Friday: 9:00 AM 10:30 AM Tuesday, 19 Feb Software Design III (CS 340) 17 5
Abstract Data Types (ADTs) Example ADTs. Using an Abstract Data Type. Class #08: Linear Data Structures
Abstract Data Types (ADTs) Class #08: Linear Data Structures Software Design III (CS 340): M. Allen, 08 Feb. 16 An ADT defines a kind of computational entity: A set of objects, with possible values A set
More informationTwo Types of Types. Primitive Types in Java. Using Primitive Variables. Class #07: Java Primitives. Integer types.
Class #07: Java Primitives Software Design I (CS 120): M. Allen, 13 Sep. 2018 Two Types of Types So far, we have mainly been dealing with objects, like DrawingGizmo, Window, Triangle, that are: 1. Specified
More information} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.
Class #10: Understanding Primitives and Assignments Software Design I (CS 120): M. Allen, 19 Sep. 18 Java Arithmetic } Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = 2 + 5 / 2; 3.
More informationSearching for Information. A Simple Method for Searching. Simple Searching. Class #21: Searching/Sorting I
Class #21: Searching/Sorting I Software Design II (CS 220): M. Allen, 26 Feb. 18 Searching for Information Many applications involve finding pieces of information Finding a book in a library or store catalogue
More informationCMSC 341. Linked Lists. Textbook Section 3.5
CMSC 341 Linked Lists Textbook Section 3.5 1 Implementing A Linked List To create a doubly linked list as seen below MyLinkedList class Node class LinkedListIterator class Sentinel nodes at head and tail
More informationReview: Using Imported Code. What About the DrawingGizmo? Review: Classes and Object Instances. DrawingGizmo pencil; pencil = new DrawingGizmo();
Review: Using Imported Code Class #06: Objects, Memory, & Program Traces Software Engineering I (CS 120): M. Allen, 30 Jan. 2018 ; = new ();.setbackground( java.awt.color.blue );.setforeground( java.awt.color.yellow
More informationReview: Classes and Object Instances. Review: Creating an Object. Using Multiple Objects. DrawingGizmo pencil; pencil = new DrawingGizmo();
Review: Classes and Object Instances ; = new (); Class #05: Objects, Memory, & Program Traces Software Engineering I (CS 120): M. Allen, 12/13 Sept. 17 We are working with both a class () and an object
More informationCS231 - 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 informationReview: Object Diagrams for Inheritance. Type Conformance. Inheritance Structures. Car. Vehicle. Truck. Vehicle. conforms to Object
Review: Diagrams for Inheritance - String makemodel - int mileage + (String, int) Class #3: Inheritance & Polymorphism Software Design II (CS 220): M. Allen, 25 Jan. 18 + (String, int) + void
More informationAnnouncements. CS18000: Problem Solving And Object-Oriented Programming
Announcements Exam 1 Monday, February 28 Wetherill 200, 4:30pm-5:20pm Coverage: Through Week 6 Project 2 is a good study mechanism Final Exam Tuesday, May 3, 3:20pm-5:20pm, PHYS 112 If you have three or
More informationData structure is an organization of information, usually in memory, for better algorithm efficiency.
Lecture 01 Introduction Wednesday, 29 July 2015 12:59 pm Data structure is an organization of information, usually in memory, for better algorithm efficiency. Abstract data types (ADTs) are a model for
More informationpackage weiss.util; // Fig , pg // Fig 6.16,6.17, pg package weiss.util;
package weiss.util; // Fig 6.9-10, pg 192-4. public interface Collection extends java.io.serializable int size( ); boolean isempty( ); boolean contains( Object x ); boolean add( Object x ); boolean remove(
More informationCS 3 Introduction to Software Engineering. 5: Iterators
CS 3 Introduction to Software Engineering 5: Iterators Questions? 2 PS1 Discussion Question You are to choose between two procedures, both of which compute the minimum value in an array of integers. One
More informationAbstract Data Types. Data Str. Client Prog. Add. Rem. Find. Show. 01/30/03 Lecture 7 1
Abstract Data Types Add Client Prog Rem Find Data Str. Show 01/30/03 Lecture 7 1 Linear Lists It is an ordered collection of elements. Lists have items, size or length. Elements may have an index. Main
More informationAbstract Data Types. Data Str. Client Prog. Add. Rem. Find. Show. 01/22/04 Lecture 4 1
Abstract Data Types Add Client Prog Rem Find Data Str. Show 01/22/04 Lecture 4 1 Containers Powerful tool for programming data structures Provides a library of container classes to hold your objects 2
More informationLINKED LISTS cs2420 Introduction to Algorithms and Data Structures Spring 2015
LINKED LISTS cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -assignment 5 due tonight at midnight -assignment 6 is out -YOU WILL BE SWITCHING PARTNERS! 3 assignment
More informationBasic Class Diagrams. Class Diagrams, cont d. Class Diagrams, cont d. Car. Car. Car. What does the minus sign here mean?
Class #02: Inheritance and Object-Oriented Design Software Design II (CS 220): M. Allen, 23 Jan. 18 Basic Class Diagrams Describes a class and how it can be used properly Sketch of properties and behaviors
More informationHomework 2: Imperative Due: 5:00 PM, Feb 15, 2019
CS18 Integrated Introduction to Computer Science Fisler Homework 2: Imperative Due: 5:00 PM, Feb 15, 2019 Contents 1 Overview of Generic/Parameterized Types 2 2 Double the Fun with Doubly-Linked Lists
More informationCS 61B Data Structures and Programming Methodology. June David Sun
CS 61B Data Structures and Programming Methodology June 26 2008 David Sun Announcements Project 1 will be handed out at the end of next week. Project 1 is now due after Midterm I on 7/15. Lab2 homework
More informationComputer Science 210 Data Structures Siena College Fall 2018
Computer Science 210 Data Structures Siena College Fall 2018 Topic Notes: The ArrayList Arrays are a very common method to store a collection of similar items. Arrays work very well for a lot of situations,
More informationIn this lecture Simple List Algorithms
In this lecture Simple List Algorithms 15-211 Fundamental Data Structures and Algorithms Ananda Guna & Klaus Sutner January 16, 2003 Based on lectures given by Peter Lee, Avrim Blum, Danny Sleator, William
More informationCS32 Discussion Week 3
CS32 Discussion Week 3 Muhao Chen muhaochen@ucla.edu http://yellowstone.cs.ucla.edu/~muhao/ 1 Outline Doubly Linked List Sorted Linked List Reverse a Linked List 2 Doubly Linked List A linked list where
More informationProgramming 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 informationGoal. Generic Programming and Inner classes. Minor rewrite of linear search. Obvious linear search code. Intuitive idea of generic linear search
Goal Generic Programming and Inner classes First version of linear search Input was array of int More generic version of linear search Input was array of Comparable Can we write a still more generic version
More informationIntroduction 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 informationDiscussion 2C Notes (Week 3, January 21) TA: Brian Choi Section Webpage:
Discussion 2C Notes (Week 3, January 21) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Abstraction In Homework 1, you were asked to build a class called Bag. Let
More informationCS Introduction to Data Structures Week 1 Thursday
CS 367 - Introduction to Data Structures Week 1 Thursday We assume that you are proficient at object-oriented programming in Java. Please enroll in CS300 if you do not know Java and have not written object-oriented
More informationLinked 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 informationHomework #10 due Monday, April 16, 10:00 PM
Homework #10 due Monday, April 16, 10:00 PM In this assignment, you will re-implement Dictionary as Map container class using the same data structure. A Map has an associated entry set and that set will
More informationCS 180 Final Exam Review 12/(11, 12)/08
CS 180 Final Exam Review 12/(11, 12)/08 Announcements Final Exam Thursday, 18 th December, 10:20 am 12:20 pm in PHYS 112 Format 30 multiple choice questions 5 programming questions More stress on topics
More informationAnnouncements/Follow-ups
Announcements/Follow-ups Midterm #2 Friday Everything up to and including today Review section tomorrow Study set # 6 online answers posted later today P5 due next Tuesday A good way to study Style omit
More informationWhat is an Iterator? An iterator is an abstract data type that allows us to iterate through the elements of a collection one by one
Iterators What is an Iterator? An iterator is an abstract data type that allows us to iterate through the elements of a collection one by one 9-2 2-2 What is an Iterator? An iterator is an abstract data
More informationLinked List Nodes (reminder)
Outline linked lists reminders: nodes, implementation, invariants circular linked list doubly-linked lists iterators the Java foreach statement iterator implementation the ListIterator interface Linked
More informationJava Collection Framework
Java Collection Framework Readings Purpose To provide a working knowledge of the Java Collections framework and iterators. Learning Objectives Understand the structure of the Java Collections framework
More informationDesign to interfaces. Favor composition over inheritance Find what varies and encapsulate it
Design Patterns The Gang of Four suggests a few strategies for creating good o-o designs, including Façade Design to interfaces. Favor composition over inheritance Find what varies and encapsulate it One
More informationCSE 143 Lecture 26. Advanced collection classes. (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, ,
CSE 143 Lecture 26 Advanced collection classes (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, 15.3-15.4, 16.4-16.5 slides created by Marty Stepp, adapted by Alyssa Harding
More informationCloning Enums. Cloning and Enums BIU OOP
Table of contents 1 Cloning 2 Integer representation Object representation Java Enum Cloning Objective We have an object and we need to make a copy of it. We need to choose if we want a shallow copy or
More informationAgenda. Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList!
Implementations I 1 Agenda Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList! Stack and queues Array-based implementations
More informationProgramming 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 informationAgenda. Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList
Implementations I 1 Agenda Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList Stack and queues Array-based implementations
More informationCS : Data Structures Michael Schatz. Sept Lecture 5: Iterators
CS 600.226: Data Structures Michael Schatz Sept 10 2018 Lecture 5: Iterators Agenda 1. Review HW1 2. References and Linked Lists 3. Nested Classes and Iterators Assignment 1: Due Friday Sept 14 @ 10pm
More informationObject Oriented Software Design
Object Oriented Software Design Containers Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 12, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction to Java October
More informationFloating-point lab deadline moved until Wednesday Today: characters, strings, scanf Characters, strings, scanf questions clicker questions
Announcements Thursday Extras: CS Commons on Thursdays @ 4:00 pm but none next week No office hours next week Monday or Tuesday Reflections: when to use if/switch statements for/while statements Floating-point
More informationList ADT. Announcements. The List interface. Implementing the List ADT
Announcements Tutoring schedule revised Today s topic: ArrayList implementation Reading: Section 7.2 Break around 11:45am List ADT A list is defined as a finite ordered sequence of data items known as
More informationJAVA REVIEW cs2420 Introduction to Algorithms and Data Structures Spring 2015
JAVA REVIEW cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -Lab 0 posted -getting started with Eclipse -Java refresher -this will not count towards your grade -TA office
More informationCS 151. Exceptions & Javadoc. slides available on course website. Sunday, September 9, 12
CS 151 Exceptions & Javadoc slides available on course website 1 Announcements Prelab 1 is due now. Please place it in the appropriate (Mon vs. Tues) box. Please attend lab this week. There may be a lecture
More informationCS 101 Fall 2006 Midterm 1 Name: ID:
You only need to write your name and e-mail ID on the first page. This exam is CLOSED text book, closed-notes, closed-calculator, closed-neighbor, etc. Questions are worth different amounts, so be sure
More informationCmpSci 187: Programming with Data Structures Spring 2015
CmpSci 187: Programming with Data Structures Spring 2015 Lecture #13, Concurrency, Interference, and Synchronization John Ridgway March 12, 2015 Concurrency and Threads Computers are capable of doing more
More informationInsertions and removals follow the Fist-In First-Out rule: Insertions: at the rear of the queue Removals: at the front of the queue
Queues CSE 2011 Fall 2009 9/28/2009 7:56 AM 1 Queues: FIFO Insertions and removals follow the Fist-In First-Out rule: Insertions: at the rear of the queue Removals: at the front of the queue Applications,
More informationArray. 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 informationWelcome 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 informationCS 310: Array-y vs Linky Lists
CS 310: Array-y vs Linky Lists Chris Kauffman Week 4-2 Feedback 1. Something you learned about yourself or your process during coding of HW1. Could be improvements you need to make Could be a success you
More informationCS61B Lecture #5: Arrays and Objects
CS61B Lecture #5: Arrays and Objects For faster response, please send urgent problems (like the lab files don t compile ) as mail to cs61b, rather than using class messages. Homeworks are generally due
More informationEECS 2011 M: Fundamentals of Data Structures
EECS 2011 M: Fundamentals of Data Structures Suprakash Datta Office: LAS 3043 Course page: http://www.eecs.yorku.ca/course/2011m Also on Moodle S. Datta (York Univ.) EECS 2011 W18 1 / 19 Iterators and
More informationArrays. 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 informationCS 61B Discussion 5: Inheritance II Fall 2014
CS 61B Discussion 5: Inheritance II Fall 2014 1 WeirdList Below is a partial solution to the WeirdList problem from homework 3 showing only the most important lines. Part A. Complete the implementation
More informationLab 5 Random numbers!
Lab 5 Random numbers! ADT:s as Programming Tools! D0010E! Lecture 13! Iterators! MasterMind Reminder: Groups must have their designs approved before any actual programming is allowed to start. Some review
More informationWeek 2. TA Lab Consulting - See schedule (cs400 home pages) Peer Mentoring available - Friday 8am-12pm, 12:15-1:30pm in 1289CS
ASSIGNMENTS h0 available and due before 10pm on Monday 1/28 h1 available and due before 10pm on Monday 2/4 p1 available and due before 10pm on Thursday 2/7 Week 2 TA Lab Consulting - See schedule (cs400
More informationCS : Data Structures
CS 600.226: Data Structures Michael Schatz Oct 3, 2016 Lecture 14: Machine Code Optimization Assignment 5: Due Sunday Oct 9 @ 10pm Remember: javac Xlint:all & checkstyle *.java & JUnit Solutions should
More informationWhat is it? CMSC 433 Programming Language Technologies and Paradigms Spring Approach 1. Disadvantage of Approach 1
CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Singleton Pattern Mar. 13, 2007 What is it? If you need to make sure that there can be one and only one instance of a class. For example,
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationArrays. myints = new int[15];
Arrays As you know from COMP 202 (or equivalent), an array is a data structure that holds a set of elements that are of the same type. Each element in the array can be accessed or indexed by a unique number
More informationPlease note that if you write the mid term in pencil, you will not be allowed to submit a remark request.
University of Toronto CSC148 Introduction to Computer Science Summer 2001 Mid Term Test Section L0101 Duration: 50 minutes Aids allowed: none Make sure that your examination booklet has 8 pages (including
More informationAnnouncements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop
Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00
More informationLast time s big ideas
Last time s big ideas 1. When we want an array of objects, we store their references in the array 2. It is important to distinguish between the specification and implementation of a class 3. public and
More informationCSE443 Compilers. Dr. Carl Alphonce 343 Davis Hall
CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis Hall http://www.cse.buffalo.edu/faculty/alphonce/sp17/cse443/index.php https://piazza.com/class/iybn4ndqa1s3ei Phases of a compiler Target
More informationProgramming Exercise 14: Inheritance and Polymorphism
Programming Exercise 14: Inheritance and Polymorphism Purpose: Gain experience in extending a base class and overriding some of its methods. Background readings from textbook: Liang, Sections 11.1-11.5.
More informationArrayList. Introduction. java.util.arraylist
ArrayList Introduction In this article from my free Java 8 course, I will be giving you a basic overview of the Java class java.util.arraylist. I will first explain the meaning of size and capacity of
More informationCS18000: Problem Solving And Object-Oriented Programming
CS18000: Problem Solving And Object-Oriented Programming Data Abstraction: Inheritance 7 March 2011 Prof. Chris Clifton Data Abstraction Continued Abstract data type provides Well-defined interface Separation
More informationJava classes cannot extend multiple superclasses (unlike Python) but classes can implement multiple interfaces.
CSM 61B Abstract Classes & Interfaces Spring 2017 Week 5: February 13, 2017 1 An Appealing Appetizer 1.1 public interface Consumable { public void consume (); public abstract class Food implements Consumable
More informationCSC 172 Data Structures and Algorithms. Lecture #9 Spring 2018
CSC 172 Data Structures and Algorithms Lecture #9 Spring 2018 SINGLY LINKED LIST 3.1.3 Linked lists We will consider these for Singly linked lists Doubly linked lists Basic Singly Linked List class Node
More informationImplementation. 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 informationAn Activation Record for Simple Subprograms. Activation Record for a Language with Stack-Dynamic Local Variables
Activation Records The storage (for formals, local variables, function results etc.) needed for execution of a subprogram is organized as an activation record. An Activation Record for Simple Subprograms.
More informationCOS 126 Exam Review. Exams overview Example programming exam Example written exam questions (part 1)
COS 126 Exam Review Exams overview Example programming exam Example written exam questions (part 1) Exams overview (revisited) We have exams in the fall Two written exams. Two programming exams. Prep sessions
More informationCS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley.
CS61C Machine Structures Lecture 3 Introduction to the C Programming Language 1/23/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L03 Introduction to C (1) Administrivia
More informationCS/ENGRD 2110 SPRING 2018
CS/ENGRD 2110 SPRING 2018 Lecture 7: Interfaces and http://courses.cs.cornell.edu/cs2110 1 2 St Valentine s Day! It's Valentines Day, and so fine! Good wishes to you I consign.* But since you're my students,
More informationAnnouncements. Java Graphics. Exceptions. Java Odds & Ends
Java Odds & Ends Lecture 25 CS211 Fall 2005 Final Exam Wednesday, 12/14 9:00-11:30am Uris Aud Review Session Sunday, 12/11 1:00-2:30pm Kimball B11 Check your final exam schedule! Announcements For exam
More informationMIDTERM EXAM THURSDAY MARCH
Week 6 Assignments: Program 2: is being graded Program 3: available soon and due before 10pm on Thursday 3/14 Homework 5: available soon and due before 10pm on Monday 3/4 X-Team Exercise #2: due before
More informationH212 Introduction to Software Systems Honors
Introduction to Software Systems Honors Lecture #04: Fall 2015 1/20 Office hours Monday, Wednesday: 10:15 am to 12:00 noon Tuesday, Thursday: 2:00 to 3:45 pm Office: Lindley Hall, Room 401C 2/20 Printing
More informationCS61BL. Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling
CS61BL Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling About me Name: Edwin Liao Email: edliao@berkeley.edu Office hours: Thursday 3pm - 5pm Friday 11am - 1pm 611 Soda Or by
More informationCS 251 Intermediate Programming Methods and Classes
CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationCS 251 Intermediate Programming Methods and More
CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationGeneric types. Announcements. Raw ArrayLists. Generic types (cont.) Creating a raw ArrayList: Accessing a raw ArrayList:
Announcements PS 3 is ready Midterm exam 1: Tuesday, April 11, in class Closed book but one sheet, both sides, of A4 paper is allowed Today s topic: Generics (parameterized types) Readings for this slide
More informationClosed book but one sheet, both sides, of A4 paper is allowed. Section 2.5 of the text Generics in the Java Programming Languages by Gilad Bracha
Announcements PS 3 is ready Midterm exam 1: Tuesday, April 11, in class Closed book but one sheet, both sides, of A4 paper is allowed Today s topic: Generics (parameterized types) Readings for this slide
More informationTaking Stock. IE170: Algorithms in Systems Engineering: Lecture 7. (A subset of) the Collections Interface. The Java Collections Interfaces
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 7 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University January 29, 2007 Last Time Practice Some Sorting Algs
More informationLab Assignment Three
Lab Assignment Three C212/A592 Fall Semester 2010 Due in OnCourse by Friday, September 17, 11:55pm (Dropbox will stay open until Saturday, September 18, 11:55pm) Abstract Read and solve the problems below.
More informationCOMP-202: Foundations of Programming. Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016
COMP-202: Foundations of Programming Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016 Review What is the difference between a while loop and an if statement? What is an off-by-one
More informationComputer 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 informationImportant Dates. Game State and Tree. Today s topics. Game Tree and Mini-Max. Games and Mini-Max 3/20/14
MINI-MAX USING TREES AND THE JAVA COLLECTIONS FRAMEWORK Lecture 16 CS2110 Spring 2014 2 Important Dates. April 10 --- A4 due (Connect 4, minimax, trees) April 15 --- A5 due (Exercises on different topics,
More informationJava Review: Objects
Outline Java review Abstract Data Types (ADTs) Interfaces Class Hierarchy, Abstract Classes, Inheritance Invariants Lists ArrayList LinkedList runtime analysis Iterators Java references 1 Exam Preparation
More informationCS171 Midterm Exam. October 29, Name:
CS171 Midterm Exam October 29, 2012 Name: You are to honor the Emory Honor Code. This is a closed-book and closed-notes exam. You have 50 minutes to complete this exam. Read each problem carefully, and
More informationCSE 143. Lecture 7: Linked List Basics reading: 16.2
CSE 143 Lecture 7: Linked List Basics reading: 16.2 References vs. objects variable = value; a variable (left side of = ) is an arrow (the base of an arrow) a value (right side of = ) is an object (a box;
More informationWinter 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 informationSoftware Paradigms (Lesson 3) Object-Oriented Paradigm (2)
Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Table of Contents 1 Reusing Classes... 2 1.1 Composition... 2 1.2 Inheritance... 4 1.2.1 Extending Classes... 5 1.2.2 Method Overriding... 7 1.2.3
More informationAn Introduction to Data Structures
An Introduction to Data Structures Advanced Programming ICOM 4015 Lecture 17 Reading: Java Concepts Chapter 20 Fall 2006 Adapded from Java Concepts Companion Slides 1 Chapter Goals To learn how to use
More informationComputer Science II CSci 1200 Sections 1-4,6 Week 6, Friday Class October 5, 2001 Linked Lists, Part 2
Computer Science II CSci 1200 Sections 1-4,6 Week 6, Friday Class October 5, 2001 Linked Lists, Part 2 Announcements Tests will be returned next Friday. We will discuss test content, test preparations,
More informationEECE.2160: ECE Application Programming
Fall 2017 Programming Assignment #10: Doubly-Linked Lists Due Monday, 12/18/17, 11:59:59 PM (Extra credit ( 5 pts on final average), no late submissions or resubmissions) 1. Introduction This assignment
More informationCS 61B Data Structures and Programming Methodology. July 2, 2008 David Sun
CS 61B Data Structures and Programming Methodology July 2, 2008 David Sun Announcements Project 1 spec and code is available on the course website. Due July 15 th. Start early! Midterm I is next Wed in
More informationJanuary 24, Abstract Data Types (ADTs) An ADT is an abstraction of a data structure.
Lists CSE 2011 Winter 2007 January 24, 2007 1 Abstract Data Types (ADTs) An ADT is an abstraction of a data structure. An ADT specifies: data stored operations on the data error conditions associated with
More informationAnnouncements. 1. Forms to return today after class:
Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.
More information