2016-05-27 7 views
-1

リンクリスト(サブリスト)の要素を持つリンクリスト(スーパーリストと呼ぶことができます)を調べようとしています。リンクリスト内のリンクリストの長さはどのようにしてわかりますか?

両方のリンクリストに要素を追加する方法は次のとおりです。

LinkedList<Object> list = new LinkedList<>(); 

public void add(Object... item) { 
    LinkedList<Object> thingie = new LinkedList<>(); 
    for (Object i: item) { 
     thingie.add(i); 
    } 
    list.addAll(thingie); 
} 

は今、私は1のグループ、2、3、横断することによってサブリストの4つの要素があるかどうかを確認するためのメソッドを記述する必要がありますsuperlist は、私がこれまでのところ(非常に間違っている)持っていることは次のとおりです。

LinkedList <Object> ohno = new LinkedList<>(); 
     for (int i = 0; i<list.size(); i++){ 
      ohno = (LinkedList<Object>) list.get(i); 
      if (int j = 1; j = ohno.size();){ 
       return true; 
      } 
      else return false; 
     } 
+0

あなたのスーパーリスト 'list'はオブジェクトのリストであり、' LinkedList'のリストではありません。 – Abhishek

+0

私はあなたが '(== ohno.size() - 1){' –

+0

が何かを意味すると思いますか? "1、2、3、4の要素のグループがあるかどうかをチェックします" _?あなたはその情報をどのように使用しますか? –

答えて

0

あなたは何ができるかは疑問でグループサイズのパラメータを渡す方法を作成し、任意のサブリストがあるかどうかを発見しますサイズグループサイズ。

private static boolean hasSubListsOfSize (LinkedList<Object> superList, final int groupSize) 
{ 
    for (int i = 0, size = superList.size(); i < size; i++) 
    { 
     LinkedList<Object> subList = (LinkedList<Object>) superList.get(i); 
     if (subList.size() == groupSize) 
     { 
      return true; 
     } 
    } 

    // didn't find any sub lists of the group size 
    return false; 
} 

側注:@Abhishekで指摘したように、あなたのスーパーリストは技術的LinkedList'sLinkedListではありません。これは、のObjectsです。そのため、「Sub LinkedList」にアクセスするには、LinkedListに明示的にキャストする必要があります。

あなたがLinkedList'sの真LinkedListをしたい場合は、このようsuperListを作成する必要があります。あなたはそのように作成した場合、その後、あなたはコンパイル時に明示的なキャストを行うことがなくなります

LinkedList<LinkedList<Object>> superList = new LinkedList<LinkedList<Object>>(); 

関連する問題