1 集合操作和辅助类

  • 数据分页

    如何让一个在集合呈现一种分页的效果呢——需要对集合进行包装。在一些缓存数据和数据后端无法提供分页的基础上,可以采用基于列表的内存分页方式。

    val sers = new collection.mutable.ListBuffer[User]
    (0,1000) foreach{ i=>
      users += new User(i)
    }

    val one=new PagedList(users,20);
    while(page.hasNext){
       val next = page.next()
       //do something
    }
  • 数据转换和筛选

    筛选集合中符合特定规则的对象,收集(Select)成一个新的集合,也是经常遇到的。例如查找性别为男性的用户。

    val maleUsers=Collections.select(users, new Predicate(){
	  def  apply(user User):Boolean= (user.getGender.getName=="男")
    });
  • 对象比较器

    往往我们需要按照指定的属性进行排序,例如按照创建日期、用户名排序。可以使用以下语句进行排序。

    val users=CollectUtils.newArrayList();
    users.sortBy(new PropertyOrdering("username",true))
    // sort by creator's username
    users.sortBy(new PropertyComparator("creator.username",true))
    //[User,Group] list
    val userGroups:Seq[Array[Object]]=search()
    userGroups.sortBy(new PropertyComparator("[0].username",true)