下面列舉了一些,stream的一些基本的使用方法,比如去重,遍歷,篩選,獲取指定元素的等。
獲取集合中制定元素
listlistre = new arraylist<>();//開發中是有元素的
industryinfo industryinfo = listre.stream().filter(f -> f.getname().tostring().equals("其他")).collect(collectors.tolist()).get(0);
public static void test2();
stream stream2 = stream.of(strarray);
stream stream3 = arrays.stream(strarray);
// collections
listlist = arrays.aslist(strarray);
stream stream4 = list.stream();
//建立乙個集合
listlist2 = lists.newarraylist(1,99,2,343,2,3,22,null,45,34,null,34,7);
//輸出
list2.stream().foreach(system.out::println);
system.out.println("-------------");
//去重,輸出
list2.stream().distinct().foreach(system.out::println);
system.out.println("-------------");
//去掉null值
list2.stream().filter(li->li != null).foreach(system.out::println);
system.out.println("-------------");
//每個元素乘以2
list2.stream().filter(li->li != null).maptoint(li->li*2).foreach(system.out::println);
system.out.println("-------------");
//每個元素誠乘以3
intstream s2 = list2.stream().filter(li -> li != null).maptoint(li -> li * 3);
s2.foreach(system.out::println);
system.out.println("-------------");
//擷取操作,獲取前n位,不足n位,就全部獲取
streamlist4 = list2.stream().limit(4);
list4.foreach(system.out::println);
system.out.println("-------------");
//丟棄操作,捨棄前n位,不足n位,返回空stream
streamskiplist = list2.stream().skip(8);
skiplist.foreach(system.out::println);
system.out.println("-------------");
//統計個數
long count = list2.stream().filter(li -> li != null).count();
system.out.println(count);
system.out.println("-------------");
//大於200的
list2.stream().filter(li ->li != null && li >200).foreach(system.out::println);
system.out.println("-------------");
//求和
int sum = list2.stream().filter(li -> li != null).maptoint(li -> li).sum();
system.out.println(sum);
system.out.println("-------------");
//輸出1,2,3,4
intstream.range(1,5).foreach(system.out::println);
//輸出1,2,3,4,5
intstream.rangeclosed(1,5).foreach(system.out::println);
//變大寫
listcollect = list.stream().map(string::touppercase).collect(collectors.tolist());
collect.stream().foreach(system.out::println);
}
public static void test3()
system.out.println("和為:"+sum2);
//steam留求和
int sum3 = list.stream().maptoint(li->li).sum();
system.out.println(sum3);
//最大值
streamintegerstream4 = stream.of(1,5,4,55,64,88);
optionalint max = integerstream4.maptoint(li -> li).max();
system.out.println(max);
}
/**
* 聚合 reduce()
*/public static void test7()
下面簡單的演示一下,當集合的元素為物件時,stream做篩選過濾的用法,可以看到在用stream處理這種多條件的篩選時,比集合簡單很多
public static void test5()
public static listtest4()
package test;
/** * created by lightclouds917
* date 2017/11/3
* description:
*/public class fruit
public void setname(string name)
@override
public string tostring() ';
}public fruit(string name, string color, string address, integer price, integer stock, string description)
public string getcolor()
public void setcolor(string color)
public string getaddress()
public void setaddress(string address)
public integer getprice()
public void setprice(integer price)
public integer getstock()
public void setstock(integer stock)
public string getdescription()
public void setdescription(string description)
}
Java8 Stream經典示例
示例一 class user public int getid public string tostring 現在有乙個list的集合,如何把這個list轉換成map其中,key是user id,value是user物件 如下 listusers arrays.aslist new user 1,t...
Java8 Stream 中間操作
1 filter 過濾,接收lambda,從流中排除某些元素 內部迭代 迭代操作有stream api完成 test public void test1 終止操作 一次性執行全部內容 stream.foreach system.out println 外部迭代 test public void te...
java8 stream的collect 三個引數
collect方法有兩個過載 第乙個接收的是collector型別的,可以直接用collectors這類工具傳方法引用。第二個接收的是三個引數的,supplier 乙個能創造目標型別例項的方法。accumulator 乙個將當元素新增到目標中的方法。combiner 乙個將中間狀態的多個結果整合到一...