java中使用子列表的arraylist分区数据
我有一个列表实现了ArrayList,它有大量的索引。我想要一份工作 将其放入单独的ArrayList中。我已尽我所能
List<List<Integer>> list = new ArrayList<List<Integer>>(10000000);
List<List<Integer>> sublist1 = list.subList(0,x)
List<List<Integer>> sublist2 = list.subList(x,y)
等等。我不知道这是否是正确的分区方式。你能给我建议一种有效的分区方法吗
[编辑]
我有这样一个数组列表:
[[1,2,3],[4,5,6],[8,9,10],[11,12,13],[44,88,1000], ......,[54,23,53]]
这个名单很长。我想从上面的列表中得到一些小的子列表。每个列表将包含不重叠的内部列表:
sublist1:[[1,2,3][4,5,6] ...[.,.,.]] sublist2:[[,,,][] .... [,,,,]] sublistn:[[,,,][,,,]....[54,23,53]]
[编辑]
请不要混淆[]
是空列表。我想显示列表中列表的数量
# 1 楼答案
我觉得你把这些类型搞混了
也许这就是你想要的:
用法示例:
# 2 楼答案
我建议您详细了解一下java collection API来回答这个问题,因为它主要取决于访问类型和您在集合中访问的数据类型
没有任何进一步的细节,至少有两个好的建议:
最佳的解决方案是移动到树集,因为这些是自然快速的数据结构,只需切割树的一部分即可拆分。一切都已经是JavaAPI的一部分,您将没有太多工作要做这要求您的用例不允许重复值,并且在集合中包含可订购的数据,但将始终为您提供logn操作
如果你被不可排序的数据所困扰,并且你承认重复的价值,你将不得不使用列表。ArrayList有一个访问O(n)的高效实现,因为它由一个数组支持。然而,由于分配相邻内存的长空间的复杂性,使其变得非常大会带来一些问题在使用ArrayList或LinkedList之间有一个平衡点,您必须根据自己的需求来确定,包括随机访问的需要、创建列表后的插入/删除等
# 3 楼答案
下面是一个遵循您的示例的建议:
用法示例:
输出: