SlideShare a Scribd company logo
Array with Iterator. Java style
Implement an array data structure as a class JstyArray to support the Iterable interface such that
the following code works:
The iterator provided by this class follows the behaviour of typical Java style (Jsty). If the
underlying collection is modified, the iterator becomes invalid and an exception is raised.
An example of code that may generate an exception is below:
There are 4 necessary methods for the Array. get(), set(), remove() and iterator().
There are 2 necessary methods for Iterator. hasNext() and next().
Other than these, you need to create more methods for communicating between Array and the
Iterator. Object references are very useful in this scenario.
Once you have an iterator going. There is the next step of handling multiple iterators for the
same data structure. More than one iterator can exist, at different times. There are iterators which
are
•are invalid and have raised an exception, or
•are invalid and have not yet raised an exception, or
•are valid, they were created after modification to the data structure.
Multiple iterators are one of the harder tests
THERE ARE TWO CLASSES USED as shown below:
....................................................................................................................
JstyIterator.java:
/*
* An iterator for the class JstyArray. Performs all standard tasks of an iterator.
* Specifically, when calling next() on an invalid iterator, a NoSuchElementException is raised
by this class.
*
*/
import java.util.Iterator;
import java.util.NoSuchElementException;
public class JstyIterator implements Iterator{
private JstyArray array;
private int index;
public JstyIterator(JstyArray array) {
this.array = array;
index = 0;
}
// YOUR CODE ANYWHERE IN THIS CLASS
public boolean hasNext() {
// YOUR CODE ANYWHERE IN THIS CLASS
if (array.size == index)
return false;
else
return true;
}
public E next() throws NoSuchElementException {
// YOUR CODE ANYWHERE IN THIS CLASS
if (array.list.size() != array.size)
throw new NoSuchElementException("Array elements have been modified !");
else if (hasNext()) {
return array.get(index++);
} else {
throw new NoSuchElementException("There are no elements in the array. Size = " +
array.size);
}
}
public void remove() {
// we need this method for the nagging Java compiler
// you may leave empty
}
}
..........................................................................................................................................................
JstyArray.java:
/*
* An array that implements the Iterable interface.
* Returns an iterator that would raise an exception if the array was modified (set or remove)
*
*/
import java.util.LinkedList;
public class JstyArray implements Iterable{
// YOUR CODE ANYWHERE IN THIS CLASS
private E[] array;
public static final int CAPACITY = 100;
public int size;
public int capacity;
public LinkedList list;
// there could be more instance variables!
/*
* initialise array with capacity. If capacity is less than 1, use CAPACITY.
*
*/
@SuppressWarnings("unchecked")
public JstyArray(int capacity) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (capacity
{
array = (E[]) new Object[CAPACITY];
this.capacity = CAPACITY;
list = new LinkedList();
size = 0;
}
else
{
array = (E[]) new Object[capacity];
this.capacity = capacity;
list = new LinkedList();
size = 0;
}
}
/*
* if index is outside range of array. simply return
*
*/
public void set(int i, E val) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (i >= capacity)
return;
else
{
array[i] = val;
list.add(i, val);
size++;
}
}
/*
* if index is outside range of array. return null
*
*/
public E get(int i) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (i >= capacity)
return null;
else
return array[i];
}
/*
* if index is outside range of array. return null
*
*/
public E remove(int i) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (i >= capacity)
return null;
else
{
list.remove(i);
E e = array[i];
array[i] = null;
return e;
}
}
public JstyIterator iterator() {
// YOUR CODE ANYWHERE IN THIS CLASS
return new JstyIterator(this);
}
}
...........................................................................................................................................................
..............
It passes some testcase but not all.
Can you fix my code for it to pass all testcases TESTCASES testremove Begin4 V
testPrintEachNoException testremoveEnd5 V testNested1 testremoveEnd3 V testremove Begin3
X testConsecutiveUseBadGood X testremoveEnd1 X testremoveEnd2 X testremoveEnd4 X
testremoveBegin2 X testremove Single X testConsecutiveUseGoodBadGood
Solution
PROGRAM CODE:
JstyArray.java
package array2;
/*
* An array that implements the Iterable interface.
* Returns an iterator that would raise an exception if the array was modified (set or remove)
*
*/
import java.util.LinkedList;
import java.util.NoSuchElementException;
public class JstyArray implements Iterable{
// YOUR CODE ANYWHERE IN THIS CLASS
private E[] array;
public static final int CAPACITY = 100;
public int size;
public int capacity;
public LinkedList list;
// there could be more instance variables!
/*
* initialise array with capacity. If capacity is less than 1, use CAPACITY.
*
*/
@SuppressWarnings("unchecked")
public JstyArray(int capacity) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (capacity<1)
{
array = (E[]) new Object[CAPACITY];
this.capacity = CAPACITY;
list = new LinkedList();
size = 0;
}
else
{
array = (E[]) new Object[capacity];
this.capacity = capacity;
list = new LinkedList();
size = 0;
}
}
/*
* if index is outside range of array. simply return
*
*/
public void set(int i, E val) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (i >= capacity)
return;
else
{
array[i] = val;
list.add(i, val);
size++;
}
}
/*
* if index is outside range of array. return null
*
*/
public E get(int i) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (i >= capacity)
return null;
else
return array[i];
}
/*
* if index is outside range of array. return null
*
*/
public E remove(int i) {
// YOUR CODE ANYWHERE IN THIS CLASS
if (i >= capacity)
return null;
else if(array[i] == null)
{
throw new NoSuchElementException("No such element !");
}
else
{
list.remove(i);
E e = array[i];
array[i] = null;
//size--;
return e;
}
}
public JstyIterator iterator() {
// YOUR CODE ANYWHERE IN THIS CLASS
return new JstyIterator(this);
}
}
JstyIterator.java
package array2;
/*
* An iterator for the class JstyArray. Performs all standard tasks of an iterator.
* Specifically, when calling next() on an invalid iterator, a NoSuchElementException is raised
by this class.
*
*/
import java.util.Iterator;
import java.util.NoSuchElementException;
public class JstyIterator implements Iterator{
private JstyArray array;
private int index;
private int initialSize;
public JstyIterator(JstyArray array) {
this.array = array;
this.index = 0;
this.initialSize = array.list.size();
}
// YOUR CODE ANYWHERE IN THIS CLASS
public boolean hasNext() {
// YOUR CODE ANYWHERE IN THIS CLASS
if (array.size == index)
return false;
else
return true;
}
public E next() throws NoSuchElementException {
// YOUR CODE ANYWHERE IN THIS CLASS
if (initialSize != array.list.size())
throw new NoSuchElementException("Array elements have been modified !");
else if (hasNext()) {
return array.get(index++);
} else {
throw new NoSuchElementException("There are no elements in the array. Size = " +
array.size);
}
}
public void remove() {
// we need this method for the nagging Java compiler
// you may leave empty
}
}
JstTester.java
package array2;
import java.util.NoSuchElementException;
public class JstTester {
static JstyArray array;
public static void main(String[] args) {
array = new JstyArray<>(10);
for(int i=0; i<10; i++)
array.set(i, i);
//Test case - testRemoveBegin4
array.remove(4);
//Test case - testPrintEachNoException
System.out.println(" Test case - testPrintEachNoException");
JstyIterator itr = array.iterator();
while(itr.hasNext())
{
System.out.print(itr.next() + " ");
}
System.out.println("");
//Test case - testRemoveBegin4
array.remove(5);
System.out.println(" Test case - testConsecutiveBad");
itr = array.iterator();
array.remove(1);
try{
while(itr.hasNext())
{
System.out.print(itr.next() + " ");
}}catch (NoSuchElementException e) {
System.out.println("Exception: Error: " + e.getMessage());
}
itr = array.iterator();
System.out.println(" Test case - testConsecutiveGood");
while(itr.hasNext())
{
System.out.print(itr.next() + " ");
}
System.out.println("");
try
{
array.remove(5);
}catch (Exception e) {
System.out.println(" Exception: Error: " + e.getMessage());
}
}
}
OUTPUT:
Test case - testPrintEachNoException
0 1 2 3 null 5 6 7 8 9
Test case - testConsecutiveBad
Exception: Error: Array elements have been modified !
Test case - testConsecutiveGood
0 null 2 3 null null 6 7 8 9
Exception: Error: No such element !

More Related Content

Similar to Array with Iterator. Java styleImplement an array data structure a.pdf

Preparation Data Structures 05 chain linear_list
Preparation Data Structures 05 chain linear_listPreparation Data Structures 05 chain linear_list
Preparation Data Structures 05 chain linear_list
Andres Mendez-Vazquez
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.
Tarunsingh198
 
Unit 1 of java part 2 basic introduction
Unit 1 of java part 2 basic introduction Unit 1 of java part 2 basic introduction
Unit 1 of java part 2 basic introduction
AKR Education
 
Java Tutorial | My Heart
Java Tutorial | My HeartJava Tutorial | My Heart
Java Tutorial | My Heart
Bui Kiet
 
Java Tutorial
Java TutorialJava Tutorial
Java Tutorial
ArnaldoCanelas
 
Java_Tutorial_Introduction_to_Core_java.ppt
Java_Tutorial_Introduction_to_Core_java.pptJava_Tutorial_Introduction_to_Core_java.ppt
Java_Tutorial_Introduction_to_Core_java.ppt
Govind Samleti
 
What is an exception in java?
What is an exception in java?What is an exception in java?
What is an exception in java?
Pramod Yadav
 
Java Generics
Java GenericsJava Generics
Java Generics
jeslie
 
JAVA(UNIT 4)
JAVA(UNIT 4)JAVA(UNIT 4)
JAVA(UNIT 4)
SURBHI SAROHA
 
Java tut1
Java tut1Java tut1
Java tut1
Sumit Tambe
 
Java tut1 Coderdojo Cahersiveen
Java tut1 Coderdojo CahersiveenJava tut1 Coderdojo Cahersiveen
Java tut1 Coderdojo Cahersiveen
Graham Royce
 
Java tut1
Java tut1Java tut1
Java tut1
Sumit Tambe
 
Javatut1
Javatut1 Javatut1
Javatut1
desaigeeta
 
Core java concepts
Core    java  conceptsCore    java  concepts
Core java conceptsChikugehlot
 
PHP 5 Magic Methods
PHP 5 Magic MethodsPHP 5 Magic Methods
PHP 5 Magic Methods
David Stockton
 
Inheritance
InheritanceInheritance
Inheritance
Mavoori Soshmitha
 
Given the code below create a method called, getCollisionCount that .pdf
Given the code below create a method called, getCollisionCount that .pdfGiven the code below create a method called, getCollisionCount that .pdf
Given the code below create a method called, getCollisionCount that .pdf
aucmistry
 
JavaHTP7e_1313_DDP.ppt
JavaHTP7e_1313_DDP.pptJavaHTP7e_1313_DDP.ppt
JavaHTP7e_1313_DDP.ppt
DrTouseefTahir
 

Similar to Array with Iterator. Java styleImplement an array data structure a.pdf (20)

Preparation Data Structures 05 chain linear_list
Preparation Data Structures 05 chain linear_listPreparation Data Structures 05 chain linear_list
Preparation Data Structures 05 chain linear_list
 
Collections
CollectionsCollections
Collections
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.
 
Unit 1 of java part 2 basic introduction
Unit 1 of java part 2 basic introduction Unit 1 of java part 2 basic introduction
Unit 1 of java part 2 basic introduction
 
Java Tutorial | My Heart
Java Tutorial | My HeartJava Tutorial | My Heart
Java Tutorial | My Heart
 
Java Tutorial
Java TutorialJava Tutorial
Java Tutorial
 
Java_Tutorial_Introduction_to_Core_java.ppt
Java_Tutorial_Introduction_to_Core_java.pptJava_Tutorial_Introduction_to_Core_java.ppt
Java_Tutorial_Introduction_to_Core_java.ppt
 
What is an exception in java?
What is an exception in java?What is an exception in java?
What is an exception in java?
 
Java Generics
Java GenericsJava Generics
Java Generics
 
JAVA(UNIT 4)
JAVA(UNIT 4)JAVA(UNIT 4)
JAVA(UNIT 4)
 
Java tut1
Java tut1Java tut1
Java tut1
 
Java tut1 Coderdojo Cahersiveen
Java tut1 Coderdojo CahersiveenJava tut1 Coderdojo Cahersiveen
Java tut1 Coderdojo Cahersiveen
 
Java tut1
Java tut1Java tut1
Java tut1
 
Javatut1
Javatut1 Javatut1
Javatut1
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
 
Core java concepts
Core    java  conceptsCore    java  concepts
Core java concepts
 
PHP 5 Magic Methods
PHP 5 Magic MethodsPHP 5 Magic Methods
PHP 5 Magic Methods
 
Inheritance
InheritanceInheritance
Inheritance
 
Given the code below create a method called, getCollisionCount that .pdf
Given the code below create a method called, getCollisionCount that .pdfGiven the code below create a method called, getCollisionCount that .pdf
Given the code below create a method called, getCollisionCount that .pdf
 
JavaHTP7e_1313_DDP.ppt
JavaHTP7e_1313_DDP.pptJavaHTP7e_1313_DDP.ppt
JavaHTP7e_1313_DDP.ppt
 

More from fcaindore

You are the CIO of a medium size company tasked with modernizing the.pdf
You are the CIO of a medium size company tasked with modernizing the.pdfYou are the CIO of a medium size company tasked with modernizing the.pdf
You are the CIO of a medium size company tasked with modernizing the.pdf
fcaindore
 
Why are some goods only provided by the government Why are .pdf
Why are some goods only provided by the government Why are .pdfWhy are some goods only provided by the government Why are .pdf
Why are some goods only provided by the government Why are .pdf
fcaindore
 
When a supervisor comes to the HR manager to evaluate disciplinary a.pdf
When a supervisor comes to the HR manager to evaluate disciplinary a.pdfWhen a supervisor comes to the HR manager to evaluate disciplinary a.pdf
When a supervisor comes to the HR manager to evaluate disciplinary a.pdf
fcaindore
 
What is the role of an ethical leader in corporate cultures a. A le.pdf
What is the role of an ethical leader in corporate cultures a. A le.pdfWhat is the role of an ethical leader in corporate cultures a. A le.pdf
What is the role of an ethical leader in corporate cultures a. A le.pdf
fcaindore
 
What is the main purpose of a project management planSolution.pdf
What is the main purpose of a project management planSolution.pdfWhat is the main purpose of a project management planSolution.pdf
What is the main purpose of a project management planSolution.pdf
fcaindore
 
What is the difference between a balanace sheet and a net income she.pdf
What is the difference between a balanace sheet and a net income she.pdfWhat is the difference between a balanace sheet and a net income she.pdf
What is the difference between a balanace sheet and a net income she.pdf
fcaindore
 
What is involved in personalization and codification of tacit to exp.pdf
What is involved in personalization and codification of tacit to exp.pdfWhat is involved in personalization and codification of tacit to exp.pdf
What is involved in personalization and codification of tacit to exp.pdf
fcaindore
 
What dimensions of quality were highlighted in the Delta Airlines ba.pdf
What dimensions of quality were highlighted in the Delta Airlines ba.pdfWhat dimensions of quality were highlighted in the Delta Airlines ba.pdf
What dimensions of quality were highlighted in the Delta Airlines ba.pdf
fcaindore
 
What are the similarities and differences between the ETC of Photosy.pdf
What are the similarities and differences between the ETC of Photosy.pdfWhat are the similarities and differences between the ETC of Photosy.pdf
What are the similarities and differences between the ETC of Photosy.pdf
fcaindore
 
What are non-tax costs of tax planningSolutionFollowings are .pdf
What are non-tax costs of tax planningSolutionFollowings are .pdfWhat are non-tax costs of tax planningSolutionFollowings are .pdf
What are non-tax costs of tax planningSolutionFollowings are .pdf
fcaindore
 
There is a host of sociological and cultural research that paints a r.pdf
There is a host of sociological and cultural research that paints a r.pdfThere is a host of sociological and cultural research that paints a r.pdf
There is a host of sociological and cultural research that paints a r.pdf
fcaindore
 
True or False With argument passage by reference, the address of the.pdf
True or False With argument passage by reference, the address of the.pdfTrue or False With argument passage by reference, the address of the.pdf
True or False With argument passage by reference, the address of the.pdf
fcaindore
 
This is problem is same problem which i submitted on 22017, I just.pdf
This is problem is same problem which i submitted on 22017, I just.pdfThis is problem is same problem which i submitted on 22017, I just.pdf
This is problem is same problem which i submitted on 22017, I just.pdf
fcaindore
 
SOme of functions of the eukaryotic orgenelles are performed in bact.pdf
SOme of functions of the eukaryotic orgenelles are performed in bact.pdfSOme of functions of the eukaryotic orgenelles are performed in bact.pdf
SOme of functions of the eukaryotic orgenelles are performed in bact.pdf
fcaindore
 
please explain the global entreprenurship revolution for a flatter w.pdf
please explain the global entreprenurship revolution for a flatter w.pdfplease explain the global entreprenurship revolution for a flatter w.pdf
please explain the global entreprenurship revolution for a flatter w.pdf
fcaindore
 
ourse O D. growth rate of currency in circulation-growth rate of the .pdf
ourse O D. growth rate of currency in circulation-growth rate of the .pdfourse O D. growth rate of currency in circulation-growth rate of the .pdf
ourse O D. growth rate of currency in circulation-growth rate of the .pdf
fcaindore
 
Modify the project so tat records are inserted into the random acess.pdf
Modify the project so tat records are inserted into the random acess.pdfModify the project so tat records are inserted into the random acess.pdf
Modify the project so tat records are inserted into the random acess.pdf
fcaindore
 
Many hospitals have systems in place and are now or will in the futu.pdf
Many hospitals have systems in place and are now or will in the futu.pdfMany hospitals have systems in place and are now or will in the futu.pdf
Many hospitals have systems in place and are now or will in the futu.pdf
fcaindore
 
List the S + D and the organism that causes a vesicle, Gumma, purule.pdf
List the S + D and the organism that causes a vesicle, Gumma, purule.pdfList the S + D and the organism that causes a vesicle, Gumma, purule.pdf
List the S + D and the organism that causes a vesicle, Gumma, purule.pdf
fcaindore
 
Let k be the number of ON-state devices in a group of n devices on a .pdf
Let k be the number of ON-state devices in a group of n devices on a .pdfLet k be the number of ON-state devices in a group of n devices on a .pdf
Let k be the number of ON-state devices in a group of n devices on a .pdf
fcaindore
 

More from fcaindore (20)

You are the CIO of a medium size company tasked with modernizing the.pdf
You are the CIO of a medium size company tasked with modernizing the.pdfYou are the CIO of a medium size company tasked with modernizing the.pdf
You are the CIO of a medium size company tasked with modernizing the.pdf
 
Why are some goods only provided by the government Why are .pdf
Why are some goods only provided by the government Why are .pdfWhy are some goods only provided by the government Why are .pdf
Why are some goods only provided by the government Why are .pdf
 
When a supervisor comes to the HR manager to evaluate disciplinary a.pdf
When a supervisor comes to the HR manager to evaluate disciplinary a.pdfWhen a supervisor comes to the HR manager to evaluate disciplinary a.pdf
When a supervisor comes to the HR manager to evaluate disciplinary a.pdf
 
What is the role of an ethical leader in corporate cultures a. A le.pdf
What is the role of an ethical leader in corporate cultures a. A le.pdfWhat is the role of an ethical leader in corporate cultures a. A le.pdf
What is the role of an ethical leader in corporate cultures a. A le.pdf
 
What is the main purpose of a project management planSolution.pdf
What is the main purpose of a project management planSolution.pdfWhat is the main purpose of a project management planSolution.pdf
What is the main purpose of a project management planSolution.pdf
 
What is the difference between a balanace sheet and a net income she.pdf
What is the difference between a balanace sheet and a net income she.pdfWhat is the difference between a balanace sheet and a net income she.pdf
What is the difference between a balanace sheet and a net income she.pdf
 
What is involved in personalization and codification of tacit to exp.pdf
What is involved in personalization and codification of tacit to exp.pdfWhat is involved in personalization and codification of tacit to exp.pdf
What is involved in personalization and codification of tacit to exp.pdf
 
What dimensions of quality were highlighted in the Delta Airlines ba.pdf
What dimensions of quality were highlighted in the Delta Airlines ba.pdfWhat dimensions of quality were highlighted in the Delta Airlines ba.pdf
What dimensions of quality were highlighted in the Delta Airlines ba.pdf
 
What are the similarities and differences between the ETC of Photosy.pdf
What are the similarities and differences between the ETC of Photosy.pdfWhat are the similarities and differences between the ETC of Photosy.pdf
What are the similarities and differences between the ETC of Photosy.pdf
 
What are non-tax costs of tax planningSolutionFollowings are .pdf
What are non-tax costs of tax planningSolutionFollowings are .pdfWhat are non-tax costs of tax planningSolutionFollowings are .pdf
What are non-tax costs of tax planningSolutionFollowings are .pdf
 
There is a host of sociological and cultural research that paints a r.pdf
There is a host of sociological and cultural research that paints a r.pdfThere is a host of sociological and cultural research that paints a r.pdf
There is a host of sociological and cultural research that paints a r.pdf
 
True or False With argument passage by reference, the address of the.pdf
True or False With argument passage by reference, the address of the.pdfTrue or False With argument passage by reference, the address of the.pdf
True or False With argument passage by reference, the address of the.pdf
 
This is problem is same problem which i submitted on 22017, I just.pdf
This is problem is same problem which i submitted on 22017, I just.pdfThis is problem is same problem which i submitted on 22017, I just.pdf
This is problem is same problem which i submitted on 22017, I just.pdf
 
SOme of functions of the eukaryotic orgenelles are performed in bact.pdf
SOme of functions of the eukaryotic orgenelles are performed in bact.pdfSOme of functions of the eukaryotic orgenelles are performed in bact.pdf
SOme of functions of the eukaryotic orgenelles are performed in bact.pdf
 
please explain the global entreprenurship revolution for a flatter w.pdf
please explain the global entreprenurship revolution for a flatter w.pdfplease explain the global entreprenurship revolution for a flatter w.pdf
please explain the global entreprenurship revolution for a flatter w.pdf
 
ourse O D. growth rate of currency in circulation-growth rate of the .pdf
ourse O D. growth rate of currency in circulation-growth rate of the .pdfourse O D. growth rate of currency in circulation-growth rate of the .pdf
ourse O D. growth rate of currency in circulation-growth rate of the .pdf
 
Modify the project so tat records are inserted into the random acess.pdf
Modify the project so tat records are inserted into the random acess.pdfModify the project so tat records are inserted into the random acess.pdf
Modify the project so tat records are inserted into the random acess.pdf
 
Many hospitals have systems in place and are now or will in the futu.pdf
Many hospitals have systems in place and are now or will in the futu.pdfMany hospitals have systems in place and are now or will in the futu.pdf
Many hospitals have systems in place and are now or will in the futu.pdf
 
List the S + D and the organism that causes a vesicle, Gumma, purule.pdf
List the S + D and the organism that causes a vesicle, Gumma, purule.pdfList the S + D and the organism that causes a vesicle, Gumma, purule.pdf
List the S + D and the organism that causes a vesicle, Gumma, purule.pdf
 
Let k be the number of ON-state devices in a group of n devices on a .pdf
Let k be the number of ON-state devices in a group of n devices on a .pdfLet k be the number of ON-state devices in a group of n devices on a .pdf
Let k be the number of ON-state devices in a group of n devices on a .pdf
 

Recently uploaded

Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 

Recently uploaded (20)

Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 

Array with Iterator. Java styleImplement an array data structure a.pdf

  • 1. Array with Iterator. Java style Implement an array data structure as a class JstyArray to support the Iterable interface such that the following code works: The iterator provided by this class follows the behaviour of typical Java style (Jsty). If the underlying collection is modified, the iterator becomes invalid and an exception is raised. An example of code that may generate an exception is below: There are 4 necessary methods for the Array. get(), set(), remove() and iterator(). There are 2 necessary methods for Iterator. hasNext() and next(). Other than these, you need to create more methods for communicating between Array and the Iterator. Object references are very useful in this scenario. Once you have an iterator going. There is the next step of handling multiple iterators for the same data structure. More than one iterator can exist, at different times. There are iterators which are •are invalid and have raised an exception, or •are invalid and have not yet raised an exception, or •are valid, they were created after modification to the data structure. Multiple iterators are one of the harder tests THERE ARE TWO CLASSES USED as shown below: .................................................................................................................... JstyIterator.java: /* * An iterator for the class JstyArray. Performs all standard tasks of an iterator. * Specifically, when calling next() on an invalid iterator, a NoSuchElementException is raised by this class. * */ import java.util.Iterator; import java.util.NoSuchElementException; public class JstyIterator implements Iterator{ private JstyArray array; private int index;
  • 2. public JstyIterator(JstyArray array) { this.array = array; index = 0; } // YOUR CODE ANYWHERE IN THIS CLASS public boolean hasNext() { // YOUR CODE ANYWHERE IN THIS CLASS if (array.size == index) return false; else return true; } public E next() throws NoSuchElementException { // YOUR CODE ANYWHERE IN THIS CLASS if (array.list.size() != array.size) throw new NoSuchElementException("Array elements have been modified !"); else if (hasNext()) { return array.get(index++); } else {
  • 3. throw new NoSuchElementException("There are no elements in the array. Size = " + array.size); } } public void remove() { // we need this method for the nagging Java compiler // you may leave empty } } .......................................................................................................................................................... JstyArray.java: /* * An array that implements the Iterable interface. * Returns an iterator that would raise an exception if the array was modified (set or remove) * */ import java.util.LinkedList; public class JstyArray implements Iterable{ // YOUR CODE ANYWHERE IN THIS CLASS private E[] array; public static final int CAPACITY = 100; public int size;
  • 4. public int capacity; public LinkedList list; // there could be more instance variables! /* * initialise array with capacity. If capacity is less than 1, use CAPACITY. * */ @SuppressWarnings("unchecked") public JstyArray(int capacity) { // YOUR CODE ANYWHERE IN THIS CLASS if (capacity { array = (E[]) new Object[CAPACITY]; this.capacity = CAPACITY; list = new LinkedList(); size = 0; } else { array = (E[]) new Object[capacity];
  • 5. this.capacity = capacity; list = new LinkedList(); size = 0; } } /* * if index is outside range of array. simply return * */ public void set(int i, E val) { // YOUR CODE ANYWHERE IN THIS CLASS if (i >= capacity) return; else { array[i] = val; list.add(i, val); size++; }
  • 6. } /* * if index is outside range of array. return null * */ public E get(int i) { // YOUR CODE ANYWHERE IN THIS CLASS if (i >= capacity) return null; else return array[i]; } /* * if index is outside range of array. return null * */ public E remove(int i) { // YOUR CODE ANYWHERE IN THIS CLASS if (i >= capacity) return null; else
  • 7. { list.remove(i); E e = array[i]; array[i] = null; return e; } } public JstyIterator iterator() { // YOUR CODE ANYWHERE IN THIS CLASS return new JstyIterator(this); } } ........................................................................................................................................................... .............. It passes some testcase but not all. Can you fix my code for it to pass all testcases TESTCASES testremove Begin4 V testPrintEachNoException testremoveEnd5 V testNested1 testremoveEnd3 V testremove Begin3 X testConsecutiveUseBadGood X testremoveEnd1 X testremoveEnd2 X testremoveEnd4 X testremoveBegin2 X testremove Single X testConsecutiveUseGoodBadGood Solution PROGRAM CODE: JstyArray.java package array2;
  • 8. /* * An array that implements the Iterable interface. * Returns an iterator that would raise an exception if the array was modified (set or remove) * */ import java.util.LinkedList; import java.util.NoSuchElementException; public class JstyArray implements Iterable{ // YOUR CODE ANYWHERE IN THIS CLASS private E[] array; public static final int CAPACITY = 100; public int size; public int capacity; public LinkedList list; // there could be more instance variables! /* * initialise array with capacity. If capacity is less than 1, use CAPACITY. * */ @SuppressWarnings("unchecked") public JstyArray(int capacity) { // YOUR CODE ANYWHERE IN THIS CLASS if (capacity<1) { array = (E[]) new Object[CAPACITY]; this.capacity = CAPACITY; list = new LinkedList(); size = 0; } else { array = (E[]) new Object[capacity]; this.capacity = capacity; list = new LinkedList(); size = 0; }
  • 9. } /* * if index is outside range of array. simply return * */ public void set(int i, E val) { // YOUR CODE ANYWHERE IN THIS CLASS if (i >= capacity) return; else { array[i] = val; list.add(i, val); size++; } } /* * if index is outside range of array. return null * */ public E get(int i) { // YOUR CODE ANYWHERE IN THIS CLASS if (i >= capacity) return null; else return array[i]; } /* * if index is outside range of array. return null * */ public E remove(int i) { // YOUR CODE ANYWHERE IN THIS CLASS if (i >= capacity) return null; else if(array[i] == null)
  • 10. { throw new NoSuchElementException("No such element !"); } else { list.remove(i); E e = array[i]; array[i] = null; //size--; return e; } } public JstyIterator iterator() { // YOUR CODE ANYWHERE IN THIS CLASS return new JstyIterator(this); } } JstyIterator.java package array2; /* * An iterator for the class JstyArray. Performs all standard tasks of an iterator. * Specifically, when calling next() on an invalid iterator, a NoSuchElementException is raised by this class. * */ import java.util.Iterator; import java.util.NoSuchElementException; public class JstyIterator implements Iterator{ private JstyArray array; private int index; private int initialSize; public JstyIterator(JstyArray array) { this.array = array; this.index = 0; this.initialSize = array.list.size(); }
  • 11. // YOUR CODE ANYWHERE IN THIS CLASS public boolean hasNext() { // YOUR CODE ANYWHERE IN THIS CLASS if (array.size == index) return false; else return true; } public E next() throws NoSuchElementException { // YOUR CODE ANYWHERE IN THIS CLASS if (initialSize != array.list.size()) throw new NoSuchElementException("Array elements have been modified !"); else if (hasNext()) { return array.get(index++); } else { throw new NoSuchElementException("There are no elements in the array. Size = " + array.size); } } public void remove() { // we need this method for the nagging Java compiler // you may leave empty } } JstTester.java package array2; import java.util.NoSuchElementException; public class JstTester { static JstyArray array; public static void main(String[] args) { array = new JstyArray<>(10); for(int i=0; i<10; i++) array.set(i, i); //Test case - testRemoveBegin4 array.remove(4);
  • 12. //Test case - testPrintEachNoException System.out.println(" Test case - testPrintEachNoException"); JstyIterator itr = array.iterator(); while(itr.hasNext()) { System.out.print(itr.next() + " "); } System.out.println(""); //Test case - testRemoveBegin4 array.remove(5); System.out.println(" Test case - testConsecutiveBad"); itr = array.iterator(); array.remove(1); try{ while(itr.hasNext()) { System.out.print(itr.next() + " "); }}catch (NoSuchElementException e) { System.out.println("Exception: Error: " + e.getMessage()); } itr = array.iterator(); System.out.println(" Test case - testConsecutiveGood"); while(itr.hasNext()) { System.out.print(itr.next() + " "); } System.out.println(""); try { array.remove(5); }catch (Exception e) {
  • 13. System.out.println(" Exception: Error: " + e.getMessage()); } } } OUTPUT: Test case - testPrintEachNoException 0 1 2 3 null 5 6 7 8 9 Test case - testConsecutiveBad Exception: Error: Array elements have been modified ! Test case - testConsecutiveGood 0 null 2 3 null null 6 7 8 9 Exception: Error: No such element !