私は整数のリストを持っています:
List<Integer> integers= new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(7);
integers.add(8);
次のような数値の範囲を含むリストを作成したい:
- index1 = [1,3]
- index2 = [7,8]
私は整数のリストを持っています:
List<Integer> integers= new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(7);
integers.add(8);
次のような数値の範囲を含むリストを作成したい:
サブリストを試す
integers.subList(1, 3);
値ではなく、1 から 3 までのインデックス値によってのみ取得します。
また
あなたの期待値SubList
private static List<Integer> valueSubList(List<Integer> integers, int start, int end)
{
List<Integer> subList = new ArrayList<Integer>();
if (end > start)
{
for (int i = start; i <= end; i++)
{
if(integers.contains(i))
{
subList.add(i);
}
}
}
return subList;
}
与えられたリスト
List<Integer> integers= new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(7);
integers.add(8);
リストがソートされていない場合。並べ替え
Collections.sort(integers);
ここで、値が 3 の要素の後でリストを分割するとします。
int key = 3;
int index = Collections.binarySearch(integers, key);
List<Integer> index1 = integers.subList(0 , index);
List<Integer> index2 = integers.subList(index+1, integers.size() - 1);
List<Integer> integers = new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(7);
integers.add(8);
List<List<Integer>> arrayList = new ArrayList<List<Integer>>();
arrayList.add(integers.subList(0, 3));
arrayList.add(integers.subList(3, 5));
クイックソートのパーティション操作に似た何かをしようとしている、または必要としているようです。クイックソートのこのwikiページをチェックしてください。入力/期待される出力で質問を明確にするように依頼してください。