1、foreach
public static <T> Consumer<T> forEachWithIndex(BiConsumer<T, Integer> biConsumer) {
/*这里说明一下,我们每次传入forEach都是一个重新实例化的Consumer对象,在lambada表达式中我们无法对int进行++操作,
我们模拟AtomicInteger对象,写个getAndIncrement方法,不能直接使用AtomicInteger哦*/
class IncrementInt {
private Integer i = 0;
public Integer getAndIncrement() {
return i++;
}
}
IncrementInt incrementInt = new IncrementInt();
return t -> biConsumer.accept(t, incrementInt.getAndIncrement());
}
使用List.foreach((item,index)->{业务处理})文章来源:https://www.toymoban.com/news/detail-612107.html
2、Map通过key排序升序和降序文章来源地址https://www.toymoban.com/news/detail-612107.html
public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(
Map<K, V> map, boolean isDesc) {
Map<K, V> result = new LinkedHashMap<>();
if (isDesc) {
map.entrySet().stream()
.sorted(Map.Entry.<K, V>comparingByKey().reversed())
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
} else {
map.entrySet().stream()
.sorted(Map.Entry.<K, V>comparingByKey())
.forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
}
return result;
}
3根据某几个字段去重
https://blog.csdn.net/qq_28988969/article/details/81119587
到了这里,关于java8 foreach的索引获取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!