共享关于List的几个常用方法

本文介绍了一段Java代码,展示了如何将List平均分成两个子List,按照特定参数大小分组,以及从List中随机抽取指定数量的记录。代码简洁高效,适合Java开发者学习。

// 把一个List平均分成二个List
 public static List[] splitList(List list) {
  ArrayList left = new ArrayList();
  ArrayList right = new ArrayList();
  ArrayList[] result = new ArrayList[2];
  if (null == list || list.size() == 0)
   return result;
  for (int i = 0; i < list.size(); i++) {
   if (i % 2 == 0) {
    left.add(list.get(i));
   }
   else {
    right.add(list.get(i));
   }
  }
  result[0] = left;
  result[1] = right;
  return result;
 }



 // 把一个List按照size的大小分组;
 public static List splitListByParameter(List list, int size) {
  if (null == list || list.size() == 0 || size == 0)
   return null;
  int arraySize = 0;
  if (list.size() % size == 0)
   arraySize = list.size() / size;
  else
   arraySize = list.size() / size + 1;

  List result = new ArrayList(arraySize);
  int temp = 0;
  while (temp < arraySize) {
   try {
    if (temp == arraySize - 1)
     result.add(list.subList(temp * size, list.size()));
    else
     result.add(list.subList(temp * size, temp * size + size));
   }
   catch (RuntimeException e) {
    e.printStackTrace();
   }
   temp++;
  }
  return result;
 }




/**
  * 从一个LIST中随机获取size条记录,返回值LIST;
  * 
  */
 public static List getRandomRecords(List list , int size) {
  if(list==null||list.size()<=size) return list ;
  List result = new ArrayList();
  Random random = new Random();
  while(result.size()<size){
  Object obj = list.get(random.nextInt(list.size()));
  if(!result.contains(obj)){
  result.add(obj);
  }
  }
  return result ;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值