-1
내 코드에서 HashMap에 키와 값으로 저장하는 두 개의 값 대기열이 있어야합니다.두 개의 해시 맵을 비교할 수없는 이유
랜덤 마이저의 작업의 시리즈를 생성하는 것입니다 : 여기
Exception in thread "main" java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.Comparable
at java.util.PriorityQueue.siftUpComparable(Unknown Source)
at java.util.PriorityQueue.siftUp(Unknown Source)
at java.util.PriorityQueue.offer(Unknown Source)
at java.util.PriorityQueue.add(Unknown Source)
at com.n2s.StringsPractise.Prime.primeCheck(Prime.java:32)
at com.n2s.StringsPractise.Randomizer.main(Randomizer.java:22)
내 코드가 무엇을 설명하고 코드 자체입니다 : 내가 대기열에지도를 넣어 그러나 나는이 예외가 양수의 무작위 정수를 생성하고 정수의 분산 대기열을 통해 프라임에 보냅니다. 소수 직업은 정수를 수신하고 정수가 소수인지 여부를 계산하고 분산 된 대기열 (Java 대기열 구현, JMS 구현 필요 없음)을 통해 Randomizer에 응답을 반환하는 것입니다.이 수는 원래 숫자와 부울 ; 어떤 Randomizer는 시스템에 출력 할 것입니다.
랜덤 마이저 등급 :
public class Randomizer{
static Queue<Integer> q = new PriorityQueue<Integer>();
public static Queue<Integer> randomGenerate(){
int num = 0;
Random rand = new Random();
for(int k = 0; k < 10; k++){
num = rand.nextInt(Integer.MAX_VALUE);
q.add(num);
num = 0;
}
return q;
}
public static void main(String[] args){
Queue<HashMap<Integer, String>> outQ = Prime.primeCheck(randomGenerate());
System.out.println(outQ);}
}
}
프라임 등급 :
public class Prime{
Randomizer rn = new Randomizer();
static HashMap<Integer, String> map = new HashMap<Integer, String>();
static Queue<HashMap<Integer, String>> primeQ = new PriorityQueue<HashMap<Integer, String>>();
public static Queue<HashMap<Integer, String>> primeCheck(Queue<Integer> q){
boolean flag = false;
Iterator<Integer> itr = q.iterator();
while(itr.hasNext()){
int item = (int) itr.next();
int srt = (int) Math.sqrt((double) item);
if (item==1) {
flag = true;
} else{
for(int i=2;i<=srt;i++){
if(item % i == 0) flag = false;
}
flag = true;
}
if(flag == true)
map.put(item, "Prime");
else map.put(item, "Not Prime");
primeQ.add(map);
}
return primeQ;
}
}
HashMap에 따라서 Comparable 인터페이스를 구현하지 않습니다에 심지어 대등은 compareTo() –
에 캐스트 할 수없는 당신은 논리 오류가 있습니다 뭔가가 아닌 경우 프라임, 너 set flag = false, 그리고 그 직후 flag = true. –
구현 한 후 해결할 수없는 대등 –