首页 > 编程语言 >Java集合常用类及使用特点

Java集合常用类及使用特点

时间:2024-04-07 18:30:46浏览次数:23  
标签:Java List ArrayList 元素 list new 集合 类及

Java集合框架提供了一组接口和类,用于存储和操作对象集合。它包括常用的数据结构,如列表、集合、映射等,以及对应的实现类。

主要接口和类:

List(列表): 允许重复元素,按照插入顺序存储。常用实现类有ArrayList(查询快、增删慢)和LinkedList(增删快、查询慢)。

ArrayList vs. LinkedList: ArrayList适用于随机访问元素,LinkedList适用于频繁插入和删除操作。

Set(集合): 不允许重复元素,不保证顺序。常用实现类有HashSet(插入和查询速度快,不保证顺序)和TreeSet。

HashSet vs. TreeSet: HashSet基于哈希表实现,插入和查询速度快,不保证顺序;TreeSet基于红黑树实现,元素有序,但插入和查询速度相对较慢。

Map(映射): 键值对的集合,每个键对应一个值。常用实现类有HashMap和TreeMap。

HashMap vs. TreeMap: HashMap基于哈希表实现,插入和查询速度快,不保证顺序;TreeMap基于红黑树实现,键有序。

Queue(队列): 先进先出(FIFO)的数据结构。常用实现类有LinkedList和ArrayDeque。

Deque(双端队列): 允许在两端进行插入和删除操作的队列。常用实现类有ArrayDeque。

常用操作:

  • 添加元素: 使用add()方法向集合中添加元素。

  • 删除元素: 使用remove()方法删除指定元素。

  • 遍历集合: 使用for-each循环或迭代器(Iterator)遍历集合。

  • 查找元素: 使用contains()方法检查集合中是否包含指定元素。

技巧:

1.使用泛型: 始终使用泛型来指定集合的元素类型,这样可以在编译时捕获类型错误,并提高代码的类型安全性。

List<String> list = new ArrayList<>();

2.遍历集合: 使用for-each循环或迭代器来遍历集合,简化代码并提高可读性。

List<String> list = new ArrayList<>();
for (String item : list) {
    System.out.println(item);
}

3.初始化集合: 在创建集合时尽量指定初始容量,以避免动态扩容带来的性能损耗。

List<String> list = new ArrayList<>(10);

4.使用集合工具类: 使用Collections类中的静态方法进行集合操作,如排序、查找、替换等。

List<String> list = new ArrayList<>();
Collections.sort(list);

5.避免不必要的装箱拆箱: 在使用基本数据类型时,尽量使用对应的集合类,避免自动装箱拆箱操作。

List<Integer> list = new ArrayList<>(); // 考虑使用int[]

6.注意集合元素比较: 重写对象的equals()和hashCode()方法,以确保集合中的对象比较正确。

@Override
public boolean equals(Object obj) {
    // 自定义实现
}

@Override
public int hashCode() {
    // 自定义实现
}

看名字:后缀名就是该集合所属的体系。

List有角标有序,可重复。Set元素唯一

前缀名就是该集合的数据结构。

看到Array就想到数组,就要想到查询快,有角标。

看到Linked就要想到链表就要想到增删快,add  get  remove+first last的方法。

看到Hash就要想到哈希表,就要想到唯一性,元素需要想到覆盖hashCode方法和equals方法。

看到tree就要想到二叉树,就要想到排序,就要想到两个接口Comparable,Comparator。

标签:Java,List,ArrayList,元素,list,new,集合,类及
From: https://blog.csdn.net/weixin_54136520/article/details/137473090

相关文章

  • 自制小钢琴(Java)
    简易版小钢琴packagePianoGame;importjavax.swing.*;importjava.awt.*;publicclassPianoGameextendsJFrame{Buttonbutton=null;//定义两个参数,分别为宽,高publicstaticfinalintWIDTH=700;publicstaticfinalintHEIGHT=450;......
  • Java的异常机制
    异常机制三种类型检查型异常:程序员无法预见的运行时异常:在编译时会被忽略错误ERROR:错误在代码中被忽略,在编译时检查不到异常处理机制抛出异常捕获异常异常处理的五个关键字:try,catch,finally,throw,throws以下为这五个关键词的使用方法:packageexception;publicclassD......
  • Java商城免费搭建 VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商
     1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
    鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
     鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的......
  • java中LocalDate和Date的应用
     LocalDate和Date的区别:Java中Date与LocalDate、LocalDateTime之间的区别及相互转换_localdate和date区别-CSDN博客​​​​​​​应用:获取n天前的时间数组/***根据time获取time天内时间list**@paramtime时间跨度14-半个月返回15条*......
  • 如何在JavaScript中解析S表达式
    S表达式是Lisp编程语言家族的基础。在本文中,我将逐步向您展示如何创建一个简单的S表达式解析器。这可以作为Lisp解析器的基础。Lisp是实现最简单的语言之一,创建解析器是第一步。我们可以使用解析器生成器来完成这项任务,但自己编写解析器会更容易。我们将使用JavaScript。(本文内......
  • javascript 原生JS实现 fadeIn / fadeOut 方法
    js源码:Object.prototype.fadeIn=function(time,callback){varel=this;el.style.opacity=0;varst=setInterval(function(){el.style.opacity=parseFloat(el.style.opacity)+0.01;if(el.style.opacity>=1){clearInterval(st);if(callback!==......
  • JAVA新版本特性(10万字长文详解)完全指导手册
    目录1、版本详解1.1、Java8升Java111.1.1、Java8升Java11重要特性必读1.1.2、升级JDK11概述1.1.2.1、JDK10后版本发布规则?......
  • 【Web应用技术基础】JavaScript(8)——案例:待办事项
    视频已发。截图如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......