数组分组代码模拟

<span style="font-size:14px;">/**
 * 数据分组 作用项目: 表情分组时数据拆分
 * 
 * @author syusikoku
 * @date 2016-8-17
 */
public class DataSplitGroup2 {

  private static ArrayList<String> sourceList;
  /**
   * 1 -- 60
   */
  private static int allMaxDatas = 37;
  // 每组20条
  private static int maxCount = 20;
  private static Map<Integer, List<String>> cacheGroupList;
  private static int startIndex;
  private static int endIndex;

  public static void main(String[] args) {
    sourceList = new ArrayList<String>();
    initDatas();
    splitDatas();
    printMsg();
  }

  private static void printMsg() {
    Set<Entry<Integer, List<String>>> entrySet =
        cacheGroupList.entrySet();
    for (Entry<Integer, List<String>> entry : entrySet) {
      System.out.println(
          "pos:" + entry.getKey() + ",list:" + entry.getValue());
    }
  }

  private static void splitDatas() {
    // TODO Auto-generated method stub
    // 每组20条
    int latMaxSize = sourceList.size() / maxCount;
    cacheGroupList = new HashMap<Integer, List<String>>();
    if (sourceList.size() % maxCount == 0) {
      for (int i = 0; i < latMaxSize; i++) {
        startIndex = i * maxCount;
        endIndex = (i * maxCount) + maxCount;
        cacheGroupList.put(i,
            sourceList.subList(startIndex, endIndex));
      }
    } else {
      // 能够整除的数据
      for (int i = 0; i < latMaxSize; i++) {
        startIndex = i * maxCount;
        endIndex = (i * maxCount) + maxCount;
        cacheGroupList.put(i,
            sourceList.subList(startIndex, endIndex));
      }
      // 需要新增加一页
      // 最后一页的数据
      cacheGroupList.put(cacheGroupList.size(),
          sourceList.subList(endIndex, sourceList.size()));

    }
  }

  private static void initDatas() {
    for (int i = 0; i < allMaxDatas; i++) {
      sourceList.add("itcast :" + i);
    }
  }

}</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值