2016-11-16 3 views
1

リストの2桁のプレースメント値をゼロにするメソッドを作成しようとしています。私が立ち往生しているところは、戻り値の型を作成し、渡す適切なパラメータを選択し、返す値を保持する空のリストを作成することです。Javaでは、linkedlistパラメータからlinkedlistを返します

ご協力いただければ幸いです!

(上記)メソッドからリンクされたリストを返すようにしています(ただし、わかりません)。私はパラメータが{3、-3,0,1}のような値を持つリストであることを望みます。私はまた、ここで戻り値の型が何であるべきかについても不明です。

int iterator = 0; 
    int scanner = 0; 
    LinkedList positions = new LinkedList<Integer>(); 

(上)私は、彼らがゼロ

while(iterator<input.length){ 
     if (iterator + scanner !=0){ 
      scanner ++;} 
     else if (iterator + scanner ==0){ 
      //push iterator and scanner values to the linkedlist 
+0

ヒント:Java命名規則について読む。 _ charの唯一の場所はSOME_CONSTANTです。あなたは他のもののためにそれを使用しません。 – GhostCat

答えて

0

に合計場合、これはおそらく、あなたの宿題で、私はにパラメータの代わりに値をプッシュすることができ、空のリストを作成しようとしているので、私していますあなたにいくつかの指導的な考えを与えるだけです。私はあなたのために仕事をしません!

まず、戻り値の型。事は:あなたはただ単一番号を返すことはできません。あなたはのペアに興味があります。したがって、いくつかのクラスが必要です

public class IndexPair { 
    private final int firstIndex; 
    private final int secondIndex; 

    public IndexPair(int first, int second) { this.firstIndex = first ... 

そして、あなたのメソッドは単にList<IndexPair>オブジェクトを返すことができます。注:ここで深刻な場合は、例えばの値をのように上書きすることをお勧めします。 IndexPairオブジェクトの簡単な比較を可能にするためです。

もちろん、Javaは既にここで使用できるいくつかのペアクラスを知っています。自分のことを発明する代わりに。

その他の問題:それらのペアを見つけること。素朴な解決策は、次のようになります。

List<IndexPair> results = new ArrayList<>(); 
for (int firstIndex = 0; firstIndex < input.size(); firstIndex++) { 
    for (int secondIndex = firstIndex+1; secondIndex < input.size(); secondIndex++) { 
    if (input.get(firstIndex) + input.get(secondIndex) == 0) { 
     results.add(new IndexPair(firstIndex, secondIndex)); 

と同じです。上記はあなたを得るためのものです。そのコードにいくつかのタイプミスや微妙なバグがあるかもしれません。あなたが必要とすることができるまで、それをインスピレーションとして受け取り、それを使って作業してください!

編集:あなたのメソッドを呼び出すには、例えば

List<IndexPair> pairs = sum_values(Arrays.asList(-3, 3, 0, 0)) 

としてのとおりです。しかし、理解してください:それは本当に基本的なものです。リストと配列については読んでみてください。それらのことは何度も何度も記録されています。

+0

こんにちは@GhostCat私がまだ混乱しているのは、パラメータに値{3、-3、0,1}を渡す方法です。パラメータに渡されるn個の値にn個の静的変数が必要ですか?例){3、-3、0,1}の値はfirstIndex ... fourthIndexになります。次に、静的な値を比較するためにループしているようですが、2つの合計がゼロの場合は、そのペアを返しますか?申し訳ありませんが、私はここで私の頭を包み込むように努力しています。 – dlsdaviddls

+0

答えの更新を見る。 – GhostCat