一道算法问题!求解

shaot399 2008-02-19 12:52:25
我有一个list,list的size假设为108,现在我想把list分成十个子list,子list的长度分别为
11,11,11,11,11,11,11,11,11,9
大家帮忙想想怎么解决!
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaot399 2008-02-19
  • 打赏
  • 举报
回复
谢了,自己也实现了,不过也要给分!哈哈
kkkdyc 2008-02-19
  • 打赏
  • 举报
回复
sublist 貌似很方便
malligator 2008-02-19
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.List;

class Test{
public static void main(String[] args) {
List list = new ArrayList();
for (int i = 0; i < 108; i++) {
list.add(""+i);
}
List[] result = split(list, 11);
for (int i = 0; i < result.length; i++) {
System.out.println(i+1 + "=" + result[i].size());
}
}

public static List[] split(final List list, final int standardSize) {
int listSize = list.size();
if(listSize == 0) return new List[0];
int left = listSize % standardSize;
int num = listSize / standardSize + (left == 0 ? 0 : 1);
List[] result = new List[num];
int i = 0;
for (i = 0; i < num-1; i++) {
result[i] = list.subList(i*standardSize, (i+1)*standardSize);
}
result[i] = list.subList(i*standardSize, list.size());

return result;
}
}
malligator 2008-02-19
  • 打赏
  • 举报
回复
[code=Java]import java.util.ArrayList;
import java.util.List;

class Test{
public static void main(String[] args) {
List list = new ArrayList();
for (int i = 0; i < 108; i++) {
list.add(""+i);
}
List[] result = split(list, 11);
for (int i = 0; i < result.length; i++) {
System.out.println(i+1 + "=" + result[i].size());
}
}

public static List[] split(final List list, final int standardSize) {
int listSize = list.size();
int left = listSize % standardSize;
int num = listSize / standardSize + (left == 0 ? 0 : 1);
List[] result = new List[num];
int i = 0;
for (i = 0; i < num-1; i++) {
result[i] = list.subList(i*standardSize, (i+1)*standardSize);
}
result[i] = list.subList(i*standardSize, list.size());

return result;
}
}
[/code]
caiming250 2008-02-19
  • 打赏
  • 举报
回复
List 有个方法...

list.subList(0, 11);
你在加个循环 和长度判断就可以了
lsc1202001 2008-02-19
  • 打赏
  • 举报
回复

list1 = list.subList(0, 11);
list2 = list.subList(11, 22);
....
枫叶rain 2008-02-19
  • 打赏
  • 举报
回复
你可以麻烦点啊
从里面取出来放到相应的list中,然后再把各个list加到一个list里面啊
List a1=new ArrayList();
List a2=new ArrayLIst();
......
dracularking 2008-02-19
  • 打赏
  • 举报
回复
List是动态加载的 不固定size
如果要分 那就是把目标元素分散到十个list中去就完了
boolean java.util.List.add(E o)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧