需求:把集合中所有以“张”开头,且是3个字元素存储到一个新的集合
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
Collections.addAll(names,"张飞","张无忌","张三丰","猪八戒","唐僧");
System.out.println(names);
ArrayList<String> list = new ArrayList<>();
for (String name : names) {
if(name.startsWith("张") && name.length() == 3){
list.add(name);
}
}
System.out.println(list);
//开始使用Stream流来解决这个要求
List<String> list2 = names.stream().filter(s -> s.startsWith("张"))
.filter(a -> a.length() == 3).collect(Collectors.toList());
}
1.如何获取Stream流
public static void main(String[] args) {
//1.如何获取List集合的Stream流
ArrayList<String> names = new ArrayList<>();
Collections.addAll(names,"123","1234");
Stream<String> stream = names.stream();
//2.如何获取Set集合的Stream流
HashSet<String> set = new HashSet<>();
Collections.addAll(set,"123","1234");
Stream<String> stream1 = set.stream();
//3.如何获取Map集合的Stream流
Map<String,Double> map = new HashMap<>();
map.put("123",12.12);
map.put("1234",15.12);
map.put("1235",13.12);
Set<String> keys = map.keySet();
Stream<String> ks = keys.stream();
Collection<Double> values = map.values();
Stream<Double> vs = values.stream();
//4.如何获取数组的Stream流
String name2[] = {"aaa","bbb","ccc"};
Stream<String> s1 = Arrays.stream(name2);
Stream<String> s2 = Stream.of(name2);
}