💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kuan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
- 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
- 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- 1.Java 中容器有哪些?
- 2.说说 List,Map,Set?
- 3.set 的类继承结构?
- 4.set 集合的特点?
- 5.常见的 set 集合?
- 6.Arrays.copyOf()
1.Java 中容器有哪些?
java 容器主要有 Collection 和 Map 两大类,还有他们的子类和实现类
- Collection
- List
- ArrayList
- LinkedList
- Vector
- Stack
- Set
- HashSet
- LinkedHashSet
- TreeSet
- Queue
- Map
- HashMap
- LinkedHashMap
- SortedMap
- TreeMap
- ConcurrentHashMap
- HahsTable
2.说说 List,Map,Set?
- List,主要是为顺序存储诞生的,List 接口是为了存储一组不唯一的(允许重复)有序的对象。
- Set,主要特性是不允许重复的集合。对象存储不可重复性,且无序。
- Map,主要特征是 Key-value。Map 会维护与 Key 对应的值。
Collection
3.set 的类继承结构?
4.set 集合的特点?
在 Java 中,Set 是一种集合类型,它继承自 Collection 接口,表示一组不重复的元素集合。Set 中的元素没有顺序,也没有索引,因此不能通过索引来访问 Set 中的元素。Set 中的元素可以是任意类型,包括基本类型和对象类型。
Set 集合的主要特点如下:
- 不允许重复元素:Set 集合中的元素是不重复的,每个元素只会出现一次。当向 Set 集合中添加一个已经存在的元素时,添加操作会失败并返回 false。
- 无序性:Set 集合中的元素是无序的,即没有顺序,不能通过索引来访问 Set 中的元素。
- 元素可以为 null:Set 集合中的元素可以为 null,但是如果 Set 集合中已经存在 null 元素,再次添加 null 元素时会失败并返回 false。
- 遍历元素:可以使用迭代器(Iterator)或增强型 for 循环来遍历 Set 集合中的元素。
常见的 Set 集合实现类有 HashSet、TreeSet 和 LinkedHashSet。其中,HashSet 是最常用的 Set 集合实现类,它基于散列表实现,具有快速的查找和插入性能;TreeSet 是基于红黑树实现,可以对元素进行排序;LinkedHashSet 是基于散列表和链表实现的,具有插入顺序和快速查找的特点。选择不同的 Set 集合实现类,可以根据实际需求来选择最适合的集合类型。
5.常见的 set 集合?
HashSet 和 TreeSet 都是基于 Set 的实现类。其中 TreeSet 是 Set 接口的子接口 SortedSet 接口的实现类。
- SortedSet
- TreeSet
- HashSet
- LinkedHashSet
6.Arrays.copyOf()
Arrays.copyOf和System.arraycopy的区别:
//Arrays.copyOf
public static <T> T[] copyOf(T[] original, int newLength) {
return (T[]) copyOf(original, newLength, original.getClass());
}
//System.arraycopy
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
都是用于数组复制的方法,但它们有一些不同之处。
Arrays.copyOf(original, newLength):
-
Arrays.copyOf()
是java.util.Arrays
类的一个静态方法,用于将一个数组复制到一个新的数组,并指定新数组的长度。 - 参数
value
是源数组,参数newCapacity
是新数组的长度。 - 如果新数组长度小于源数组长度,则只复制前
newCapacity
个元素,多余的元素将被截断。 - 如果新数组长度大于源数组长度,则新数组后面的元素将用默认值填充(如 0 对于数值类型、null 对于引用类型)。
- 返回一个新的数组,如果
value
是基本数据类型数组,返回新数组的类型是相同的;如果value
是引用类型数组,返回新数组的类型也是相同的。
System.arraycopy(src, srcPos, dest, destPos, length):
-
System.arraycopy()
是java.lang.System
类的一个静态方法,用于将一个数组的一部分复制到另一个数组的指定位置。 - 参数
src
是源数组,参数srcPos
是源数组开始位置的索引,参数dest
是目标数组,参数destPos
是目标数组开始位置的索引,参数length
是复制的长度。 - 这个方法会将
src
中从srcPos
复制length
长度个元素到dest
中从destPos
开始的位置。 - 注意,这个方法并不会创建新的数组,它只是在已有的目标数组
dest
中进行复制。因此,目标数组dest
的长度必须足够容纳复制的元素。
总结:
-
Arrays.copyOf()
用于创建一个新的数组,并将源数组的内容复制到新数组中。可以指定新数组的长度,多余部分填充默认值。 -
System.arraycopy()
用于将源数组的一部分内容复制到目标数组的指定位置,不会创建新的数组,只是在目标数组中进行复制。要确保目标数组足够大以容纳复制的元素。
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙