1:第一个队伍只要名字为3个字成员的姓名,存储到新集合 2:第一个队伍筛选之后只要前3人;存储到一个新集合 3:第2个队伍只要姓张的成员姓名;存储到一个新集合 4:第2个队伍不要前2人,存储到一个新集合 5:将2个队伍合并到一个队伍,存储到一个新集合 6:根据姓名创建Person对象,存储到一个新集合 //使用普通方法进行筛选 前面加了一个时间类
import java.util.ArrayList;public class Demo08List { public static void main(String[] args) { //定义一个时间类记录开始时间 long start=System.currentTimeMillis(); //定义一个集合 ArrayList<String>one=new ArrayList<>(); one.add("东方不败"); one.add("流星锤"); one.add("汪汪"); one.add("利亚东"); one.add("龙虎彪"); one.add("看风景"); one.add("超哥"); ArrayList<String>one1=new ArrayList<>(); for (String name : one) { if (name.length()==3){ one1.add(name); } } ArrayList<String>one2=new ArrayList<>(); for (int i = 0; i <3; i++) { one2.add(one1.get(i)); } ArrayList<String>two=new ArrayList<>(); two.add("独孤求败"); two.add("张百忍"); two.add("张无忌"); two.add("爱奇艺"); two.add("4399"); two.add("土豆"); two.add("张三丰"); ArrayList<String>two1=new ArrayList<>(); for (String name : two) { if (name.startsWith("张")){ two1.add(name); } } ArrayList<String>two2=new ArrayList<>(); for (int i = 2; i < two1.size(); i++) { two2.add(two1.get(i)); } ArrayList<String>all=new ArrayList<>(); all.addAll(one2); all.addAll(two2); ArrayList<Person>list=new ArrayList<>(); for (String name:all) { list.add(new Person(name)); } for (Person person : list) { System.out.println(person); } //结束的时间 long end=System.currentTimeMillis(); //以毫秒值返回 System.out.println(end-start); }} 使用Stream流的方式进行筛选
import java.util.ArrayList;import java.util.stream.Stream; public class Demo09list { public static void main(String[] args) { long start=System.currentTimeMillis(); ArrayList<String> one=new ArrayList<>(); one.add("东方不败"); one.add("裘千仞"); one.add("大神"); one.add("利亚东"); one.add("秦始皇"); one.add("???"); one.add("超哥"); Stream<String> stringStream = one.stream().filter(name -> name.length() == 3).limit(3); ArrayList<String>two=new ArrayList<>(); two.add("独孤求败"); two.add("张百忍"); two.add("张无忌"); two.add("爱奇艺"); two.add("4399"); two.add("土豆"); two.add("张三丰"); // long start=System.currentTimeMillis(); Stream<String> towStream = two.stream().filter (name -> name.startsWith("张")).skip(2); Stream.concat(stringStream,towStream).map(name-> new Person(name)).forEach(p-> System.out.println(p)); long end=System.currentTimeMillis();
//以毫秒值返回去
System.out.println(end-start); }}
Stream流固然可以简化代码格式但是这样的执行速度值得一试??
原文地址:https://www.cnblogs.com/liyado/p/10618365.html
时间: 2024-10-29 19:05:28