3---java中的集合

Posted on 2022-06-30 16:50  慢热并不是缺点  阅读(29)  评论(0编辑  收藏  举报

集合是什么:表示一组元素的对象,有的是有序的,有的是无序的,有的是可重复的,有的是不可重复的。

 

 首先根是:Collection

1:Set 没有重复元素  SortedSet 有序的Set

2:List 序列 有序集合,每个元素有精确的位置,通过索引可以访问。

3:Queue 队列也不绝对完全是FIFO  因为有优先队列 

4:Deque 双端队列

5:Map 键值对 简称映射  没有重复的键 但可有重复的值 SortedMap 有序的Map

其次是使用

集合包括很多方法,基本写业务的时候都会用到。这里重点说说遍历。之前写程序里用得最多的就是for-each了,Iterator迭代器用得少,偶尔用于特殊的算法。

在JDK8中,集合公开了两个流方法 stream(),parallelStream() 从底层获取流 顺序流 并行流。看一眼代码就明白什么意思了。

.stream() 
    .filter(e -> e.getGender() == Person.Sex.MALE) 
    .forEach(e -> System.out.println(e.getName()));

for (Person p : roster) { 
    if (p.getGender() == Person.Sex.MALE) { 
        System.out.println(p.getName()); 
    } 
}
补充:
c.removeAll(Collections.singleton(e));使用这个去null很方便

最后来看一下java给我们的可使用的集合

1:Set:

TreeSet :元素存于红黑树中,根据值排序,较慢

HashSet:元素存储在哈希表中,是性能最好的实现,不保证顺序

LinkedHashSet:带有链表的哈希表,按插入顺序排序

简单应用:

c.stream()
.collect(Collectors.toSet()); // 没有重复

 

未完待续。。。。

参考:https://docs.oracle.com/javase/tutorial/collections/interfaces/index.html

Copyright © 2024 慢热并不是缺点
Powered by .NET 8.0 on Kubernetes