Flink 常见 Iterable 转 List,List treeMap的使用

1,Iterable转List

Iterable geted = entityDao.findAll();
List list = Lists.newArrays();
geted.forEach(single ->{list.add(single)});

学习了:https://blog.csdn.net/u010003051/article/details/53422741

 

Iterator转List

方式1:
#Apache Commons Collections:
import org.apache.commons.collections.IteratorUtils;
Iterator myIterator = //some iterator
List myList=IteratorUtils.toList(myIterator);   
 
 
方式二:
或者自己转换
public static  List copyIterator(Iterator iter) {
    List copy = new ArrayList();
    while (iter.hasNext())
        copy.add(iter.next());
    return copy;
}
 
使用方式:
List list = Arrays.asList("1", "2", "3");
Iterator iter = list.iterator();
List copy = copyIterator(iter);

2,List 跟 treeMap 在topN中的使用

List>  list = new ArrayList<>();
System.out.println("list = " + list);
input.forEach(single ->{
    list.add(single);
});
Collections.sort(list,new Comparator>() {

    @Override
    public int compare(Tuple2 o1, Tuple2 o2) {

        int i = o1.f1 - o2.f1;
        return i;
    }
});
System.out.println("list = " + list);
List> tuple2s = list.subList(0, 2);

//treemap按照key降序排列,相同count值不覆盖
TreeMap> treemap = new TreeMap>(
        new Comparator() {

            @Override
            public int compare(Integer y, Integer x) {
                return (x < y) ? -1 : 1;
            }

        });

//只保留前面TopN个元素

for (Tuple2 element : input) {
    treemap.put(element.f1, element);
    if (treemap.size() > topSize) {
        treemap.pollLastEntry();
    }
}


for (Map.Entry> entry : treemap
        .entrySet()) {
    out.collect("=================\n热销图书列表:\n" + new Timestamp(System.currentTimeMillis()) + treemap.toString() + "\n===============\n");
}

你可能感兴趣的:(Flink)