-1

我有一个整数列表:

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

我想制作一个包含以下数字范围的列表:

  • 索引1 = [1,3]
  • 索引2 = [7,8]
4

5 回答 5

1

尝试子列表

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;
    }
于 2013-10-21T09:35:59.917 回答
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);
于 2013-10-21T09:39:19.960 回答
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));
于 2013-10-21T09:45:18.813 回答
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);
于 2013-10-21T09:55:02.953 回答
0

看来您正在尝试或需要类似于快速排序的分区操作的东西。请检查这个快速排序的 wiki 页面。要求您通过输入/预期输出来澄清您的问题。

于 2013-10-21T10:08:00.260 回答