欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 蓝桥杯常用的APi

蓝桥杯常用的APi

2025/4/20 4:57:25 来源:https://blog.csdn.net/juzihuaile/article/details/147222568  浏览:    关键词:蓝桥杯常用的APi

创建ArrayList和LinkedList

在 Java 中,ArrayListLinkedList 是两种常用的集合类,它们都实现了 List 接口。它们的创建方式和底层实现有所不同,适用的场景也各有特点。以下是它们的详细介绍和区别。

ArrayList 和 LinkedList 的区别

1.底层实现
  • ArrayList:基于动态数组实现,底层是一个数组。

  • LinkedList:基于双向链表实现,底层是一个链表结构。

2.性能差异
  • 随机访问

    • ArrayList:通过索引访问元素非常快,时间复杂度为 O(1)

    • LinkedList:通过索引访问元素较慢,因为需要从头或尾遍历到指定位置,时间复杂度为 O(n)

  • 插入和删除

    • ArrayList:在中间位置插入或删除元素较慢,因为需要移动大量元素,时间复杂度为 O(n)

    • LinkedList:在中间位置插入或删除元素较快,因为只需要调整指针,时间复杂度为 O(1)(前提是已经找到目标位置)。

  • 内存占用

    • ArrayList:内存占用相对较小,因为每个元素只存储数据本身。

    • LinkedList:内存占用较大,因为每个节点需要存储数据和前后指针。

3.适用场景
  • ArrayList

    • 适合需要频繁随机访问的场景。

    • 适合数据量较大且插入和删除操作较少的场景。

    • 适合需要动态数组功能的场景。

  • LinkedList

    • 适合需要频繁插入和删除的场景。

    • 适合需要实现队列或栈的场景(LinkedList 提供了额外的方法,如 addFirst()removeLast() 等)。

4.线程安全性
  • ArrayListLinkedList 都不是线程安全的。如果需要线程安全的列表,可以使用 Collections.synchronizedList()CopyOnWriteArrayList

5. 总结
特性ArrayListLinkedList
底层实现动态数组双向链表
随机访问性能O(1)(快)O(n)(慢)
插入/删除性能O(n)(慢)O(1)(快,前提是找到目标位置)
内存占用较小较大
适用场景随机访问频繁、插入删除较少插入删除频繁、实现队列或栈

Set接口

Set集合不允许存储重复的元素,常用的实现类有HashSet和TreeSet。

Map接口

Map 是 Java 中的一个接口,用于存储键值对(Key-Value)的数据结构。它的每个元素由一个键(Key)和一个值(Value)组成,键是唯一的,而值可以重复。Map 提供了根据键快速查找值的能力,非常适合需要关联数据的场景。

1. Map 的基本概念

  • 键(Key):用于唯一标识一个条目。一个键在 Map 中只能出现一次。

  • 值(Value):与键关联的数据。

  • 键值对(Entry):键和值的组合。

2. Map 的常用实现类

  • HashMap:基于哈希表实现,提供快速的插入、删除和查找操作。键和值都可以为 null(但一个键只能有一个 null)。

  • LinkedHashMap:基于哈希表和双向链表实现,保持插入顺序。

  • TreeMap:基于红黑树实现,按键的自然顺序或自定义顺序排序。

  • Hashtable:与 HashMap 类似,但线程安全,不支持 null 键或值(已过时,推荐使用 ConcurrentHashMap)。

  • ConcurrentHashMap:线程安全的哈希表实现,适合高并发场景。

3. Map 的主要方法

以下是一些常用的 Map 接口方法:

  • put(K key, V value):将键值对插入到 Map 中。

  • get(Object key):通过键获取对应的值。

  • remove(Object key):通过键删除对应的键值对。

  • containsKey(Object key):检查 Map 是否包含指定的键。

  • containsValue(Object value):检查 Map 是否包含指定的值。

  • keySet():返回包含所有键的 Set

  • values():返回包含所有值的 Collection

  • entrySet():返回包含所有键值对的 Set

  • size():返回 Map 中的键值对数量。

  • clear():清空 Map

4.Map 的适用场景

    • 关联数据:例如存储用户 ID 和用户信息。

    • 缓存:通过键快速查找值。

    • 统计频率:例如统计单词出现的次数。

常用类

1.String类

String类提供了许多用于字符串操作的方法。

2.Math类

Math类提供了许多数学运算的方法。

3.BigInteger类

BigInteger类用于处理任意精度的整数运算。

4.LocalDate类

LocalDate类用于处理日期。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词