publicclassCollectionEach{publicstaticvoidmain(String[] args){//创建一个集合
var a =newHashSet();
a.add(1);
a.add(2);
a.add(3);// 调用forEach()方法遍历集合
a.forEach(obj -> System.out.println("迭代集合元素:"+ obj));}}
使用Iterator遍历集合元素
publicclassIteratorTest{publicstaticvoidmain(String[] args){//创建一个集合
var a =newHashSet();
a.add(1);
a.add(2);
a.add(3);//获取集合对应的迭代器
var it = a.iterator();while(it.hasNext()){//it.next()返回数据类型式object,需要强制转换
var each =(int)it.next();
System.out.println(each);if(each ==3){//从集合中删除3
it.remove();}}
System.out.println(a);}}
使用Lambda表达式遍历Iterator
publicclassIteratorEach{publicstaticvoidmain(String[] args){//创建一个集合
var a =newHashSet();
a.add(1);
a.add(2);
a.add(3);//获取集合对应的迭代器
var it = a.iterator();
it.forEachRemaining(obj -> System.out.println("迭代集合元素:"+ obj));}}
使用foreach遍历集合元素
publicclassForeachTest{publicstaticvoidmain(String[] args){//创建一个集合
var a =newHashSet();
a.add(1);
a.add(2);
a.add(3);for(var each : a){
System.out.println((int)each);}}}
使用Predicate接口过滤集合
publicclassForeachTest{publicstaticvoidmain(String[] args){//创建一个集合
var a =newHashSet();
a.add(1);
a.add(2);
a.add(3);for(var each : a){
System.out.println((int)each);}//使用Lambda表达式(目标类型是Predicate)过滤集合
a.removeIf( ele ->(int)ele <2);
System.out.println(a);}}
publicclassPredicateTest2{publicstaticvoidmain(String[] args){//创建一个集合
var a =newArrayList();
a.add(1);
a.add(2);
a.add(3);
a.add(1);
a.add(2);
System.out.println(callAll(a, ele ->(int)ele ==1));
System.out.println(callAll(a, ele ->(int)ele ==2));
System.out.println(callAll(a, ele ->(int)ele ==3));}publicstaticintcallAll(Collection a, Predicate p){int total =0;for(var obj : a){//使用Predicate的test()方法判断该对象是否满足Predicate指定的条件if(p.test(obj)){
total++;}}return total;}}
使用Stream操作集合
publicclassIntStreamTest{publicstaticvoidmain(String[] args){
var is = IntStream.builder().add(20).add(13).add(-2).add(18).build();//下面调用的聚集方法只能执行一次// System.out.println("is所有元素的最大值:"+is.max().getAsInt());// System.out.println("is所有元素的最小值:"+is.min().getAsInt());// System.out.println("is所有元素的总和:"+is.sum());// System.out.println("is所有元素的总数:"+is.count());// System.out.println("is所有元素的平均值:"+is.average());// System.out.println("is所有元素的平方是否都大于20:"// + is.allMatch(ele -> ele * ele > 20));// System.out.println("is 是否任何元素的平方都都大于20:"// + is.anyMatch(ele -> ele * ele > 20));//将is映射成一个新Stream, 新Stream每个元素是原来的2倍加1
var newIs = is.map(ele -> ele *2+1);
newIs.forEach(System.out::println);}}