0

私は Absolute Java で 1 つの演習を行っています。
質問は次のとおりです。部分的に埋められた文字の配列を仮パラメーターとして持ち、配列から繰り返されるすべての文字を削除する静的メソッドを作成します。メソッドには、配列パラメーターと、使用される配列位置の数を示す int 型の仮パラメーターの 2 つの仮パラメーターが必要です。文字が削除されると、残りの文字が 1 つ移動してギャップを埋めます。

私が考えているのは、ハッシュセットを使用することです。これが最も簡単な方法です。
そして、私が考えている別の方法は、 array を list に変換し、重複要素を削除してから元に戻すことです。
これが私にとっての問題です:そのコードをどのように書くのですか?? (なぜ私はそれを求めているのですか?)

public static char[] deleteRepeats(char[] array, int size)
{
    ArrayList<String> newarray = new ArrayList<String>();
    newarray = Arrays.asList(array);
}

タイプの不一致と表示されていますが、コードを修正するにはどうすればよいですか?

別の質問は次のとおりです。最初の質問に戻ると、部分的に埋められた配列を使用してそれを実装する方法は?

4

1 に答える 1

1
ArrayList<String> newarray = new ArrayList<String>();

Generic 型 String の配列リストです。ただし、パラメータはcharタイプです。したがって、それらは交換可能ではありません。Type Mismatchそれがエラーをスローするものです。

a を使用するのSetが最も簡単な実装方法です。ただし、演​​習で手動で作業を行う必要があるかどうかはわかりません。

ただし、ラッパー クラスを使用できずCharacter、型を使用する必要がある場合は、代わりの作業を行うcharために手動で変換する必要があります。Set

編集:

Arrays.asList()メソッドを使用してそのようなリストを取得することはできません。このメソッドは、プリミティブ型ではなく Java オブジェクトを引数として取ります。そして、あなたが渡すとき、char[]それが見る唯一のオブジェクトは配列自体です。

List<char[]>ジェネリックはプリミティブ型をサポートしていないため、結果は a になります。

于 2012-12-10T05:04:03.383 に答える