Guava使用笔记系列Ordering …

package com.qunar.google.guava.objects;

import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.common.collect.Ordering;
import com.qunar.google.guava.User;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class OrderingTest {
    public static void main(String[] args) {
        userOrdering();
        intOrderIng();
    }

    private static void intOrderIng() {
        List intList = Lists.newArrayList();
        for (int i = 1; i < 20; i++) {
            intList.add(new Random().nextInt(i * 200));
        }
        System.out.println("origin int list =" + intList);

        Ordering intOrdering = new Ordering() {
            @Override
            public int compare(Integer left, Integer right) {
                return left.compareTo(right);//排序完成后,默认为从小到大.
            }
        };

        List greateThan300 = intOrdering.greatestOf(intList, 300);
        System.out.println(greateThan300);//这个比较吊,如果从一堆订单中,取出金额大于300的,这个方法就非常的好用.
        System.out.println(intOrdering.isOrdered(greateThan300));//是否是排好顺序的.

        List orderIntList = intOrdering.sortedCopy(greateThan300);
        System.out.println("orderedIntList="+orderIntList);

        Ordering> lexicographical = intOrdering.lexicographical();

        List intStringList = Lists.transform(intList, new Function() {
            @Override
            public String apply(Integer input) {
                return String.valueOf(input);
            }
        });

        List> list=Lists.newArrayList();
        list.add(intList);
        list.add(orderIntList);
        List> iterables = lexicographical.sortedCopy(list);//不知道这个类有啥用,先有个印象吧,这个东西还是挺吊的.
        for (Iterable iterable : iterables) {
            for (Integer integer : iterable) {
                System.out.println(integer);
            }
        }

    }

    private static void userOrdering() {
        Ordering byIdOrder = new Ordering() {
            @Override
            public int compare(User left, User right) {
                return left.getId().compareTo(right.getId());
            }
        };
        ArrayList userList = Lists.newArrayList();
        for (int i = 1; i < 5; i++) {
            User user = new User();
            user.setAddress("aaa");
            user.setId(new Random().nextLong() + "11");
            userList.add(user);
        }

        for (User user : userList) {
            System.out.println(" id= " + user.getId());
        }

        List users = byIdOrder.sortedCopy(userList);
        for (User user : users) {
            System.out.println("id sorted=" + user.getId());
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值