制作数字范围的子列表

时间:2013-10-21 09:34:29

标签: java

我有一个整数列表:

 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]

5 个答案:

答案 0 :(得分:1)

尝试subList

integers.subList(1, 3);

仅通过索引值从1到3获取,而不是通过值。

您的期望值子列表

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;
    }

答案 1 :(得分:0)

List<Integer> index1=ArrayList<Integer>();
    index1.add(1);
    index1.add(2);
    index1.add(3);
List<Integer> index2=ArrayList<Integer>();
    index2.add(7);
    index2.add(8);

答案 2 :(得分:0)

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));

答案 3 :(得分:0)

给出一个清单

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);

答案 4 :(得分:0)

似乎你正在尝试做或需要类似于快速排序的分区操作的东西。请查看quick sort的此Wiki页面。请求您使用输入/预期输出澄清您的问题。