-1

試験で、Javaのキューにアルゴリズムを書くように頼まれました。Iteratorキューの要素を抽出するためにを使用しました。(要素はchars:'R'または'W'または'B'ONLYで構成されていました)。この質問では、入力キューの文字を作成または破棄することは禁止されていました。Iterator要素を抽出するために使用して文字を「作成」するかどうかを尋ねたかっただけですか?私のアルゴリズムは次のとおりです。

Q=Queue
Iterator dummy=Q.elements();
while (//some condition){
   if (dummy.data=='R')
   ...
   ...   

これは単なるアルゴリズムです。0マークを獲得したので、要素を「作成」したかどうかを聞きたかったのです。:(

4

3 に答える 3

1

正しいメソッドがelements()そうでelement()あるように、キューにメソッドはありません。Retrieves but does not remove element from the queuequeue.iterator()

とにかく論理的にあなたはある程度正しいですそしてあなたは値しませんでした0

を使用してアクセスすることnew for loopもできます

    for(Object object : queue) {
        //do something
    }
于 2012-09-10T06:04:27.223 に答える
0

Acharは値型であるため、すべての割り当てによって「コピー」が作成されます。

于 2012-09-10T06:08:01.153 に答える
0

いいえ、イテレータは何も作成しません。Javaの文字はオブジェクトであり、不変であり、配列から参照によって渡されます(そして、メモリ使用量を抑えるために、バックグラウンドで再利用されます):

 public static Character valueOf(char c) {
    if(c <= 127) { // must cache
        return CharacterCache.cache[(int)c];
    }
        return new Character(c);
    }
于 2012-09-10T06:08:22.853 に答える