Description Java you will create a backend class called SortableSet. A set, in computer science, is an unordered collection of unique objects. In our SortableSet, all of the objects in the set will also be immutable at the set level. This means that even if the data class used to create objects is not immutable, once they are in the set they are. We do this by making a deep copy of any objects being added to the set or returned from the set. The objects stored in the SortableSet must implement an interface called Sortable that provides a numeric sorting key and a deep copy method. SortableSet also takes advantage of two custom exception classes: DuplicateException and InvalidKeyException. Finally, the "sortable" part of SortableSet is implemented by a getSortedList method that makes a deep copy of every object in the set, saves them to an array, and then sorts them based on each object's sorting key. The sort algorithm used is a recursive radix sort modified to work with objects. Please see the attached image for details.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter18: Stacks And Queues
Section: Chapter Questions
Problem 16PE: The implementation of a queue in an array, as given in this chapter, uses the variable count to...
icon
Related questions
Question
Description Java you will create a backend class called SortableSet. A set, in computer science, is an unordered collection of unique objects. In our SortableSet, all of the objects in the set will also be immutable at the set level. This means that even if the data class used to create objects is not immutable, once they are in the set they are. We do this by making a deep copy of any objects being added to the set or returned from the set. The objects stored in the SortableSet must implement an interface called Sortable that provides a numeric sorting key and a deep copy method. SortableSet also takes advantage of two custom exception classes: DuplicateException and InvalidKeyException. Finally, the "sortable" part of SortableSet is implemented by a getSortedList method that makes a deep copy of every object in the set, saves them to an array, and then sorts them based on each object's sorting key. The sort algorithm used is a recursive radix sort modified to work with objects. Please see the attached image for details.
Details
The overall architecture of this lab is as shown here:
Sortable Set
- set: ArrayList<Sortable>
+ add(item: Sortable): void
+ delete(key: long): void
+ update(item: Sortable): void
+ get(key: long): Sortable
+ getKeys(): long[]
+ getSorted List(): Sortable[]
- sort(a: Sortable[]); void
- sort(a: Sortable[], digit: int, numDigits: int): void
- getMaxDigits(a: Sortable[]): int
sortByDigit(a: Sortable[], digit int): void
Sortable
<<interface>>
+ getSortKey(): long
+ getDeepCopy(): Sortable
Duplicate Exception
key: long
+ Duplicate Exception(message: String, key: long)
+ getKey(): long
InvalidKeyException
- key: long
+ InvalidKeyException(message: String, key: long)
+ getKey(): long
SomeConcreteClass
someldField: long
other fields required
+ full constructor
+ getters and setters
+ to String(): String
+ getSortKey(): long
+ getDeepCopy(): Sortable
java.lang. Exception
All classes must be named as shown in the above UML
diagram except the concrete class.
Transcribed Image Text:Details The overall architecture of this lab is as shown here: Sortable Set - set: ArrayList<Sortable> + add(item: Sortable): void + delete(key: long): void + update(item: Sortable): void + get(key: long): Sortable + getKeys(): long[] + getSorted List(): Sortable[] - sort(a: Sortable[]); void - sort(a: Sortable[], digit: int, numDigits: int): void - getMaxDigits(a: Sortable[]): int sortByDigit(a: Sortable[], digit int): void Sortable <<interface>> + getSortKey(): long + getDeepCopy(): Sortable Duplicate Exception key: long + Duplicate Exception(message: String, key: long) + getKey(): long InvalidKeyException - key: long + InvalidKeyException(message: String, key: long) + getKey(): long SomeConcreteClass someldField: long other fields required + full constructor + getters and setters + to String(): String + getSortKey(): long + getDeepCopy(): Sortable java.lang. Exception All classes must be named as shown in the above UML diagram except the concrete class.
Expert Solution
Step 1 Introduction

The SortableSet class which refers to the one it is a generic class in Java that implements the Set interface. It provides a mechanism to store a collection of unique objects, where the order of the elements is determined by the Comparator or Comparable interface that is passed to the constructor. It also provides methods to add, remove, and search for elements in the set, as well as for sorting the elements in the set.

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps

Blurred answer
Knowledge Booster
Class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning