java基础
发布日期:2021-05-08 14:06:05 浏览次数:18 分类:精选文章

本文共 1358 字,大约阅读时间需要 4 分钟。

short s1 = 1; s1 += 1;有错吗?

在 Java 中,short s1 = 1; s1 = s1 + 1; 这一行代码存在问题。原因在于 1int 类型,而 s1short 类型。当执行 s1 = s1 + 1 时,运算结果仍然是 int 类型,无法直接赋值给 short 类型变量。需要使用强制类型转换:s1 = (short)(s1 + 1)。而使用 s1 += 1; 则隐含了这一强制类型转换,因此该代码是可以正确编译的。


Java 集合的分类与实现

在 Java 中,集合主要分为四类:ListQueueSetMap。每种集合类型下都有多个具体的实现类,以下是详细介绍:

1. List 列表

  • 有序:列表中的元素按照插入顺序保存,支持通过索引快速访问。
  • 可重复:允许同一个元素多次出现。
  • 常用实现类:ArrayList、LinkedList、Vector、Stack。
1.1 ArrayList 列表

ArrayList 是基于数组实现的列表,支持动态大小。当列表容量不足时,会扩容。扩容策略是:新容量等于旧容量的两倍(Vector 为一倍)。ArrayList 的性能较高,适合大部分场景。

1.2 LinkedList 双向链表

LinkedList 是基于双向链表实现的列表,支持 O(1) 时间的插入和删除操作。随机访问时需要遍历链表,效率较低。适合频繁插入和删除的场景。

1.3 Vector 向量

Vector 是基于数组实现的线程安全列表,扩容策略与 ArrayList 不同,每次扩容时容量翻倍。由于线程安全的性能开销较大,通常不推荐使用。

1.4 Stack 栈

Stack 是基于数组实现的栈(后进先出),与 Vector 类似,但 Stack 专门为栈设计,避免使用与列表无关的 Vector 方法。

1.5 ArrayQueue 数组队列

ArrayQueue 是基于数组实现的队列,支持先进先出的操作。其内部通过两个指针指向队头和队尾,确保 FIFO 次序。


2. Queue 队列

Queue 是基于双端队列实现的集合,常用的实现类有 ArrayDeque、LinkedList 和 PriorityQueue。

2.1 ArrayDeque 数组双端队列

ArrayDeque 是最灵活的双端队列实现类,支持在两端插入和删除元素,且性能优于 Stack 和 Queue。

2.2 LinkedList 队列

LinkedList 双向链表实现的队列,支持 O(1) 时间的插入和删除操作。

2.3 PriorityQueue 优先队列

PriorityQueue 是基于完全二叉树实现的优先队列,支持按键值排序的最小值快速获取。其内部基于小顶堆结构。


3. Map 映射/字典

Map 是键值对的集合,键唯一,值可重复。常用的实现类有 HashMap、TreeMap 和 LinkedHashMap。

3.1 HashMap 哈希映射

HashMap 是基于哈希表实现的映射,支持 O(1) 时间的增删查找操作,适合大部分场景。


以上内容通过优化,使其更加符合技术写作风格,同时保留了核心信息,避免了重复和冗余,方便搜索引擎抓取和展示。

上一篇:HashMap底层实现原理
下一篇:SpringCLoud+redis+es高并发项目《九》(Spring Security Oauth2 JWT)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月13日 14时18分57秒