In: Computer Science
Room.java:
public class Room
{
// fields
private String roomNumber;
private String buildingName;
private int capacity;
public Room()
{
this.capacity = 0;
}
/**
* Constructor for objects of class Room
*
* @param rN the room number
* @param bN the building name
* @param c the room capacity
*/
public Room(String rN, String bN, int c)
{
setRoomNumber(rN);
setBuildingName(bN);
setCapacity(c);
}
/**
* Mutator method (setter) for room number.
*
* @param rN a new room number
*/
public void setRoomNumber(String rN)
{
this.roomNumber = rN;
}
/**
* Mutator method (setter) for building name.
*
* @param bN a new building name
*/
public void setBuildingName(String bN)
{
this.buildingName = bN;
}
/**
* Mutator method (setter) for capacity.
*
* @param c a new capacity
*/
public void setCapacity(int c)
{
this.capacity = c;
}
/**
* Accessor method (getter) for room number.
*
* @return the room number
*/
public String getRoomNumber()
{
return this.roomNumber;
}
/**
* Accessor method (getter) for building name.
*
* @return the building name
*/
public String getBuildingName()
{
return this.buildingName;
}
/**
* Accessor method (getter) for capacity.
*
* @return the capacity
*/
public int getCapacity()
{
return this.capacity;
}
}
Put the ideas into practice by extending the original Room class to create an AcademicRoom.java class.
ANSWER:
CONSIDERING THE CONDITIONS AND REQUIREMENTS FROM THE QUESTION.
CODE :
public class Classroom implements
Comparable<Classroom> {
// fields
private String roomNumber;
private String buildingName;
private int capacity;
/**
* Constructor for objects of class Classroom
*/
public Classroom() {
this.capacity = 0;
}
/**
* Constructor for objects of class Classroom
*
* @param rN the room number
* @param bN the building name
* @param c the room capacity
*/
public Classroom(String rN, String bN, int c) {
setRoomNumber(rN);
setBuildingName(bN);
setCapacity(c);
}
/**
* Mutator method (setter) for room number.
*
* @param rN a new room number
*/
public void setRoomNumber(String rN) {
this.roomNumber = rN;
}
/**
* Mutator method (setter) for building name.
*
* @param bN a new building name
*/
public void setBuildingName(String bN) {
this.buildingName = bN;
}
/**
* Mutator method (setter) for capacity.
*
* @param c a new capacity
*/
public void setCapacity(int c) {
this.capacity = c;
}
/**
* Accessor method (getter) for room number.
*
* @return the room number
*/
public String getRoomNumber() {
return this.roomNumber;
}
/**
* Accessor method (getter) for building name.
*
* @return the building name
*/
public String getBuildingName() {
return this.buildingName;
}
/**
* Accessor method (getter) for capacity.
*
* @return the capacity
*/
public int getCapacity() {
return this.capacity;
}
@Override
public int compareTo(Classroom o) {
return Integer.compare(getCapacity(), o.getCapacity());
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TestComparable.java
import java.util.ArrayList;
import java.util.Comparator;
public class TestComparable {
public static void main(String[] args) {
ArrayList<Classroom> ar = new
ArrayList<Classroom>();
ar.add(new Classroom("r1", "b1", 10));
ar.add(new Classroom("r2", "b2", 40));
ar.add(new Classroom("r3", "b3", 50));
ar.add(new Classroom("r4", "b4", 20));
ar.add(new Classroom("r5", "b5", 5));
System.out.println("Before Sorting");
for (int j = 0; j < ar.size(); j++) {
System.out.println(ar.get(j).getRoomNumber()+" :
"+ar.get(j).getCapacity());
}
ar.sort(Comparator.comparing(Classroom::getCapacity));
System.out.println("\nAfter Sorting");
for (int j = 0; j < ar.size(); j++) {
System.out.println(ar.get(j).getRoomNumber()+" :
"+ar.get(j).getCapacity());
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
EXPLANATION
CODE TO COPY
public class Classroom implements Comparable<Classroom> { // IMPLEMENTING COMPARABLE INTERFACE
// SINCE WE ARE IMPLEMENTING THIS METHOD WE HAVE TO ADD
A COMPARETO METHOD
// fields
private String roomNumber;
private String buildingName;
private int capacity;
/**
* Constructor for objects of class Classroom
*/
public Classroom() {
this.capacity = 0;
}
/**
* Constructor for objects of class Classroom
*
* @param rN the room number
* @param bN the building name
* @param c the room capacity
*/
public Classroom(String rN, String bN, int c) {
setRoomNumber(rN);
setBuildingName(bN);
setCapacity(c);
}
/**
* Mutator method (setter) for room number.
*
* @param rN a new room number
*/
public void setRoomNumber(String rN) {
this.roomNumber = rN;
}
/**
* Mutator method (setter) for building name.
*
* @param bN a new building name
*/
public void setBuildingName(String bN) {
this.buildingName = bN;
}
/**
* Mutator method (setter) for capacity.
*
* @param c a new capacity
*/
public void setCapacity(int c) {
this.capacity = c;
}
/**
* Accessor method (getter) for room number.
*
* @return the room number
*/
public String getRoomNumber() {
return this.roomNumber;
}
/**
* Accessor method (getter) for building name.
*
* @return the building name
*/
public String getBuildingName() {
return this.buildingName;
}
/**
* Accessor method (getter) for capacity.
*
* @return the capacity
*/
public int getCapacity() {
return this.capacity;
}
@Override
public int compareTo(Classroom o) { // COMPARE TO METHOD
return Integer.compare(getCapacity(), o.getCapacity()); //
COMPARING THE INTEGERS AND RETURNING -1 IF LESS 0 IF EQUAL AND 1 IF
GREATER THAN THE OBJECT CALLED
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TestComparable.java
import java.util.ArrayList; //FOR CREATING
ARRAYLIST
import java.util.Comparator; // FOR CREATING
COMPARATOR
public class TestComparable {
public static void main(String[] args) {
ArrayList<Classroom> ar = new ArrayList<Classroom>();
//CREATING A ARRAYLIST OF CLASSROOM
ar.add(new Classroom("r1", "b1", 10)); // ADDING ALL THE CLASSROOM
OBJECTS
ar.add(new Classroom("r2", "b2", 40));
ar.add(new Classroom("r3", "b3", 50));
ar.add(new Classroom("r4", "b4", 20));
ar.add(new Classroom("r5", "b5", 5));
System.out.println("Before Sorting"); //PRINTING STATEMENT
for (int j = 0; j < ar.size(); j++) { // FOR LOOP TO PRINT THE
ROOM NUMBER AND CAPACITY
System.out.println(ar.get(j).getRoomNumber()+" :
"+ar.get(j).getCapacity());
}
ar.sort(Comparator.comparing(Classroom::getCapacity)); // SORTING
THE ARRAYLIST BASED ON CAPACITY
System.out.println("\nAfter Sorting"); //PRINTINTG STATEMENT
for (int j = 0; j < ar.size(); j++) {
System.out.println(ar.get(j).getRoomNumber()+" :
"+ar.get(j).getCapacity()); //PRINTING ROOM NUMBER AND
CAPACITY
}
}
}
NOTE : PLEASE UPVOTE ITS VERY MUCH NECESSARY FOR ME LOT. PLZZZ....