Comparable Interface For Primitive Types
Apr 16, 2014Why is it necessary to implement the comparable interface for primitive types and not for classes such as Integer, String etc . . . ?
View RepliesWhy is it necessary to implement the comparable interface for primitive types and not for classes such as Integer, String etc . . . ?
View RepliesWhy the following is happening.
For the below code, when I execute it, it prints
Short method 10 //result 1
Sub class short method 10 //result 2
Which is as expected but if I comment out line 3, then it prints
Integer method 10 //result 3
Integer method 10 //result 4
I can understand result 3 is because of an upcast from short to int, since FunWithOverloading will not have a overloaded method with short now. However, what is happening with result 4? Shouldn't it call methodA of the subclass with the argument type short? If its because I have declared the reference variable, derived, of the type FunWithOverloading, then how come the first result correctly picks the overloaded method of the sub class?
class FunWithOverloading{
void methodA(int x){System.out.println("Integer method " + x);}
void methodA(short x){System.out.println("Short method " + x);} //line 3
} class OverloadedSubClass extends FunWithOverloading{
void methodA(short x){System.out.println("Sub class short method " + x);}
[Code] ....
I've got a question to ask.
public class AutoBoxingExample {
public void add(Integer intVal){
System.out.println("Wrapper");
}
public void add(int value){
System.out.println("Primitive");
}
public static void main(String[] args) {
AutoBoxingExample auto = new AutoBoxingExample();
auto.add(12);
}
}
The output is "Wrapper". What would be the reason behind it?
I have an int array that has information read from a file. Now i want to display this int on a jtable but ofcourse i cant display primitive data types.. and also you cannot cast an int[] to an Object[], so I am stuck...
View Replies View RelatedTrying to find a way to use primitive data types to overload sound()method. I can't seem to warp my head around using an int or a double to overload the method. And if I did, how do you call them in the main afterwards?
View Replies View RelatedI have the following code that will make linked list and order its elements using self referential objects. but i have the following error:
incompatible types
required: ListNode<T#2>
found: ListNode<T#1>
where T#1,T#2 are type-variables:
T#1 extends Comparable declared in method <T#1>insertInOrder(T#1)
T#2 extends Comparable declared in class OrderedList
import java.util.*;
public class ListNode<T> {
ListNode<T> nextNode;
T data;
public ListNode(T item)
{
this(item, null);
[code]...
I have a task to create a Java OOP program, I have a class Team which requires a comparable and iterable interface, the only way I know how to do this is either:
public class Team implements Iterable <Mechanic>
or
public class Team implements Comparable <Mechanic>
How do I add both?
How I'm supposed to write out the statement.
I am fairly certain that I should be making variable "b" and "c" a float. But beyond that I'm confused.
uploadfromtaptalk1407333378833.jpg
I get an error when I try to divide 500 miles by 25.5 gallons
Exception in thread "main" java.lang.NumberFormatException: For input string: "25.5"
at java.lang.NumberFormatException.forInputString(Num berFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at Mileage.main(Mileage.java:42)
Java Result: 1
[Code] .....
Here is my code:
/*
* Implement the Comparable interface on objects of type Order.
* Compare orderId, then productId. The lesser orderId should come first. If the orderIds match, then the lesser productId should come first.
*/
@Override
public int compareTo(Order ord) {
// TODO Auto-generated method stub
if(orderId > ord.orderId){
return 1;
[Code] ....
Here is the output:
Actual: 0
Expected: -1
Actual: -1
Expected: -1
Actual: 1
Expected: 1
Actual: 1
Expected: 1
Actual: 0
Expected: 0
Actual: 0
Expected: 0
In short, the "Actual" is what my code produces and the "Expected" is what it is supposed to produce. As you can see, only the first one is mismatching... I'll admit, the comment section above the method is confusing and I wasn't exactly sure what it wants me to do, but I thought I figured it out. I just don't see how 5/6 of these tests can work and the 6th one not.
Below is the requirements and code. I am getting the error CODELAB ANALYSIS: LOGICAL ERROR(S)We think you might want to consider using: >
Hints:
-Correct solutions that use equals almost certainly also uses high
-Correct solutions that use equals almost certainly also uses low
Assume the existence of a Widget class that implements the Comparable interface and thus has a compareTo method that accepts an Object parameter and returns an int . Write an efficient static method , getWidgetMatch, that has two parameters . The first parameter is a reference to a Widget object . The second parameter is a potentially very large array of Widget objects that has been sorted in ascending order based on the Widget compareTo method . The getWidgetMatch searches for an element in the array that matches the first parameter on the basis of the equals method and returns true if found and false otherwise.
public static boolean getWidgetMatch(Widget a, Widget[] b){
int bot=0;
int top=b.length-1;
int x = 0;
int y=0;
while (bot >= top)
[code]....
How do you enforce any class which implements an interface should also implement comparable too? Say for instance you may have an interface
public interface Task
{ ... }
public class DoThis implements Task { ... }
public class DoThis1 implements Task { ... }
I want all of the classes which implements the interface Task to implement comparable too. Of course I can just say implements Task, Comparable. But is there something which we could do from interface level, i mean interface Task level?
I am asked to create a code that if a user enters 1 it will use the object natural comparison form ('default') as written in CompareTo method.But if he chooses to enter something else then another comparison is used.Maybe I just need to use 2 diff comparators? but then what;s the point of defining something as 'default'....
View Replies View RelatedI have big problem with mergesort in Java. I can't figure out why it do not works. I need write it on lists using Comparable. Here is piece of code:
Java Code:
class MergeSort{
Comparator _comparator;
List lista = new ArrayList<>();
List list_temp = new ArrayList<>();
MergeSort(Comparator comparator){
[Code] ....
I have tried everything, still no results. It's return list with random placed numbers.
Which of the following classes uses Comparable and Comparator?
QueueTreeSetStackPriorityQueue
In the above question, what does 'uses' mean? Does it mean do above classes implement Comparable and Comparator?
I know that in order to compare any two elements stored in one of the above classes, we need to make the elements' class to implement one of these - either Comparable or Comparator.
My book defines this generic method
Java Code:
public static <E extends Comparable<E>> void sort(E[] list... mh_sh_highlight_all('java');
Comparable is an interface and from how i look at this piece of code is that I can only use a class that implements the Comparable interface; however, this is the context my book uses when explaining the following code
First, it specifies that E is a subtype of Comparable.
Second, it specifies that the elements to be compared are of the E type as well.
What does it mean when it says E is a subtype.
I was going through some lectures online and found that to compare or even swap, the use of comparable or comparator argument like
public static boolean less(Comparable v,Comparable w)
{
return v.compareTo(w)<0;
}
public static void swap(Comparable []a,int i,int j)
{
Comparable swap=a[i];
a[i]=a[j];
a[j]=swap;
}
I did not get the use of passing Comparable or Comparator to the function as parameters. Object as parameter could have been used too?
I have having some trouble on counting the primitive operations on the pseudocode given below:
Algorithm 4. MaximumArray(Arr)
Input: A 1-D numerical array Arr of size n
1) Let CurrentMax = a0
2) For i = 1 to n-1
3)If ai > CurrentMax Then CurrentMax = ai
4) End For
Output: CurrentMax, the largest value in Arr
As of now, I know that for Line 1 there are 2 operations (one set and one read). I don't know how to figure out the for loop and If statement (line 2 and line 3 too).
Is it possible to check to see if a what a user has entered is a string or a other variable type, if I'm asking this the right way?
View Replies View RelatedI am working on an assignment that requires me to implement 2 methods (add() and remove()) and create an inner class (OrderedListNode). I must use data items of type Comparable. The items should be sorted.
I understand what needs to be done, but I am having a difficult time actually writing the code. I added the main method to check to see if my code works, and it doesn't seem like that is even being read.It compiles without error - it only gives a warning of unchecked or unsafe operations.
Code:
package dataStructures;
//This class functions as a linked list, but ensures items are stored in ascending order.
public class OrderedLinkedList {
//return value for unsuccessful searches
private static final OrderedListNode NOT_FOUND = null;
[code]...
Operator is undefined for argument type. Error is located at the end of the binary search method array[position] < key
import java.util.Arrays;
public class binarySearch {
public static <T extends Comparable<T>> int binarysearch(T key, T[] array) {
int start = 0;
int end = array.length - 1;
int position =-1;
while (start <= end && position == -1) {
[Code]....
I am totally new to Java. What is the purpose of this method?
Flow of the int x=3; like where does the 3 go step by step?
Passing Primitive Data Type Arguments (from oracle java tutorials)
Primitive arguments, such as an int or a double, are passed into methods by value. This means that any changes to the values of the parameters exist only within the scope of the method. When the method returns, the parameters are gone and any changes to them are lost. Here is an example:
public class PassPrimitiveByValue {
public static void main(String[] args) {
int x = 3;
// invoke passMethod() with
// x as argument
passMethod(x);
[Code] ....
I have to use a long primitive type for the input of a credit card number and ID the credit card by using the first number of the input; however, the only way I know for that is to use charAt, which is used for a String. Is there a way to convert long to String, or am I missing a better solution? (There's no code because I'm still doing the pseudocode).
View Replies View RelatedMy assignment was to create a priority queue for Airline Passengers. Here is what I have done so far:
//Driver
package priorityqueuestandby;
import java.util.NoSuchElementException;
import javax.swing.JOptionPane;
public class PriorityQueueStandBy {
public static void main(String[] args) {
[Code] .....
So the part that I cant figure out is:
When a standby passenger is to be enqueued into the priority queue, it must be done so that at the moment of each dequeue operation, the item at the head of the queue is the standby passenger with the longest longevity, and also so that passengers with the same longevity are dequeued in a first-come-first-served fashion.
he says that we need to "Make your program so that it extends Comparable and implements the compareTo() method properly..."
So I was looking at the Comparable class and I could't find a compareTo() method... I am not confident I know how extends works either. I am assuming I need a new class if I am going to be extending another class. Right now I am taking in longevity as a String and converting it to an int because my last ditch effort is going to be to set up a loop that will organize longevity into a/an circular array based on the size of the incoming integer.
I am currently working on modules of a java program but am having issues with this module . it gives this error code"syntax error on token '?', invalid primitive type".
This is my code:
import java.awt.*;
import java.awt.event.*;
import java.io.PrintStream;
import java.rmi.Naming;
import java.util.StringTokenizer;
[Code] .....
class MultipleReturn {
int getInt() {
int returnVal = 10;
try {
String[] students = {"Harry", "Paul"};
//System.out.println(students[5]); //if i remove comment
[Code] .....