日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java面试知识点:红黑树、Stream流

發(fā)布時(shí)間:2024/7/5 java 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java面试知识点:红黑树、Stream流 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題:Java面試知識(shí)點(diǎn):紅黑樹、Stream流

答案:

1.紅黑樹


紅黑樹
? ? 平衡二叉B樹
? ? 每一個(gè)節(jié)點(diǎn)可以是紅或者黑
? ? 紅黑樹不是高度平衡的,它的平衡是通過“自己的紅黑規(guī)則”進(jìn)行實(shí)現(xiàn)的

??

2.Stream流


Stream流的常見中間操作方法
?? Stream<T> limit(long maxSize) : 截取指定參數(shù)個(gè)數(shù)的數(shù)據(jù)
?? Stream<T> skip(long n):跳過指定參數(shù)個(gè)數(shù)的數(shù)據(jù)
?? static <T> Stream<T> concat(Stream a, Stream b):合并a和b兩個(gè)流為一個(gè)流
?? Stream<T> distinct()?:去除流中重復(fù)的元素。依賴(hashCode和equals方法)

在流中無法直接修改數(shù)據(jù)源中的數(shù)據(jù)。

代碼如下:

public class test15Stream {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("楊大大");list.add("恒大大");// Stream<String> stream=list.stream(); // stream.forEach(s-> System.out.println(s));list.stream().forEach(s-> System.out.println(s));HashMap<String,Integer> map=new HashMap<>();map.put("楊大大",22);map.put("恒大大",22);Set<String> keySet = map.keySet();keySet.stream().forEach(s-> System.out.println(s));Set<Map.Entry<String, Integer>> entries = map.entrySet();entries.stream().forEach(s-> System.out.println(s));int[] arr={1,2};Arrays.stream(arr).forEach(s-> System.out.println(s));Stream.of(1,2).forEach(s-> System.out.println(s));list.stream().filter(new Predicate<String>() {@Overridepublic boolean test(String s) {boolean b = s.startsWith("楊");return b;}}).forEach(s-> System.out.println(s));list.stream().filter(s->{boolean b = s.startsWith("楊");return b;}).forEach(s-> System.out.println(s));list.stream().filter(s->s.startsWith("楊")).forEach(s-> System.out.println(s));list.stream().limit(2).forEach(s-> System.out.println(s));list.stream().skip(1).forEach(s-> System.out.println(s));} }


?

public class test16Stream {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("楊大大");list.add("恒大大");Stream.of(1,2).forEach(s-> System.out.println(s));list.stream().filter(new Predicate<String>() {@Overridepublic boolean test(String s) {boolean b = s.startsWith("楊");return b;}}).forEach(s-> System.out.println(s));list.stream().filter(s->{boolean b = s.startsWith("楊");return b;}).forEach(s-> System.out.println(s));list.stream().filter(s->s.startsWith("楊")).forEach(s-> System.out.println(s));list.stream().limit(2).forEach(s-> System.out.println(s));list.stream().skip(1).forEach(s-> System.out.println(s));ArrayList<String> list1=new ArrayList<>();list1.add("楊大大");list1.add("恒大大");Stream.concat(list.stream(),list1.stream()).forEach(s-> System.out.println(s));list1.add("恒大大");//forEach方法的底層,會(huì)循環(huán)獲取到流中的每一個(gè)數(shù)據(jù),//并循環(huán)調(diào)用accept方法,并把每一個(gè)數(shù)據(jù)傳遞給accept方法//s就依次表示了流中的每一個(gè)數(shù)據(jù),//所以,我們只要在accept方法中,寫上處理的業(yè)務(wù)邏輯就可以了。list1.stream().distinct().forEach(s-> System.out.println(s));long count = list1.stream().count();System.out.println(count);} }

?

public class test17Stream {public static void main(String[] args) {ArrayList<Integer> list=new ArrayList<>();for (int i = 1; i <= 10; i++) {list.add(i);}list.stream().filter(new Predicate<Integer>() {@Overridepublic boolean test(Integer integer) {return integer%2==0;}}).forEach(s-> System.out.println(s));list.stream().filter(integer -> integer%2==0).forEach(s-> System.out.println(s));List<Integer> collect = list.stream().filter(integer -> integer % 2 == 0).collect(Collectors.toList());System.out.println(collect);Set<Integer> collect1 = list.stream().filter(integer -> integer % 2 == 0).collect(Collectors.toSet());System.out.println(collect1);} } public class Actor {private String name;@Overridepublic String toString() {return "Actor{" +"name='" + name + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public Actor(String name) {this.name = name;}public Actor() {} }public class test18Stream {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("楊大大,22");list.add("恒大大,23");Map<String, Integer> collect = list.stream().filter(s -> {String[] split = s.split(",");if (Integer.parseInt(split[1]) > 22) {return true;};return false;}).collect(Collectors.toMap((String s) -> {return s.split(",")[0];},(String s) -> {return Integer.parseInt(s.split(",")[1]);}));System.out.println(collect);ArrayList<String> actors=new ArrayList<>();actors.add("楊洋");actors.add("李易峰");actors.add("易烊千璽");actors.add("胡歌");ArrayList<String> actors1=new ArrayList<>();actors1.add("楊冪");actors1.add("楊紫");actors1.add("楊穎");actors1.add("迪麗熱巴");Stream<String> stream = actors.stream().filter(s -> s.length() == 3).limit(2);Stream<String> stream1 = actors1.stream().filter(s -> s.startsWith("楊")).skip(1);Stream.concat(stream,stream1).forEach(name->{Actor actor=new Actor(name);System.out.println(actor);});} }

?

總結(jié)

以上是生活随笔為你收集整理的Java面试知识点:红黑树、Stream流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。