2012-04-13 24 views
0

私は簡単にするためにプログラムを細かくしましたが、他にもあることがあるので変数にnext()の値を格納する必要がありますその値をいくつかのものと照らし合わせてチェックする反復ループでしかし、私はその値を格納するのに問題があります、私はエラー "互換性のないタイプ"と言う。整数のツリーセットを繰り返し、next()からInteger変数に値を格納

import java.util.*; 

public class test 
{ 
    public static void main (String [] args) 
    { 
     String data="34 23 13 5 2 6 9 11"; 
     Scanner input=new Scanner(data); 
     TreeSet set=new TreeSet(); 
     while (input.hasNextInt()) 
     { 
      Integer num=new Integer(input.nextInt()); 
      set.add(num); 
     } 
     Iterator itr=set.iterator(); 
     while (itr.hasNext()) 
     { 
      Integer num2=itr.next(); 
     } 
    } 
} 

答えて

4

あなたが使用する必要があります。

TreeSet<Integer> set = new TreeSet<Integer();

をあなたが追加した場合、その後、あなたはIntegerをインスタンス化する必要がないことをしたら、やるだけのことができます:

set.add(input.nextInt()); 
オートボクシングのおかげで

。あなたが最後に反復するとき

そしてその後、あなたが行うだけのことができます:

for (Integer num2 : set) { 
} 
0

あなたは

Integer num2= (Integer) itr.next(); 
0

シンプルなキャストはトリックを行う必要がありInteger型オブジェクトにキャストする必要が

よろしくお願いします。Erwald

1

ラインでコンパイルエラー

整数NUM2 = itr.next()があります。

Iteratorクラスの次のメソッドによって返されたObjectがInteger型と等しいためです。 IntegerはObject型に属しますが、ObjectはInteger型に属しません。したがって、ObjectはJavaのすべてのクラスのスーパークラスであるため、Object型をInteger型に変換することはできません。 ここで、型は互いに互換性がない/一致しません。 Object型をStringに変換してStringをIntegerに変換することも、ObjectをIntegerにキャストすることもできます。

整数num2 = Integer.parseInt(itr.next()。toString());

整数num2 = Integer.valueOf(itr.next()。toString());

整数num2 =(整数)itr.next();

関連する問題