邂逅Java集合框架

2024-08-21 15:48
文章标签 java 框架 集合 邂逅

本文主要是介绍邂逅Java集合框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    Java集合框架是Java语言的重要组成部分,它包含了系统而完整的集合层次体系,封装了大量的数据结构的实现,深刻理解Java集合框架的组成结构及其中的实现类和算法,可以极大的提高程序员编码的能力。


一、概念


又称容器,是一个对象,能将具有相同性质的多个元素汇集成一个整体。集合框架被用于存储,获取,操纵和传输聚合的数据。

二、成员介绍


如下图,Java平台提供了一个全新的集合框架,其核心接口是Collection、List(列表)、Set(集合)和Map(映射)。由图可知,Collection是集合继承树中最顶层的接口,容器几乎都要实现该接口。





集合、列表、映射三种结构:

List:无序的,没有重复项目的集合
LIST:有序的,可以重复的
MAP:关键字与数值对,关键字是唯一标示不能重复,数据可以重复。





三、ArrayList类

是对AbstractList类的扩展,支持可随需要而增长的动态数组。在Java中标准的数组是订场的,他们被创建之后,就不能被加长或缩短,也就意味着开发者必须先知道数组可以容纳多少元素。一般情况下,只有在运行时才能知道需要多大的数组,为了解决这个问题,类集框架定义了ArrayList,它能够动态地增加或减少其大小。


Eg1:

import java.util.*;
public class Test{public static void main(String[] args){Collection c=new ArrayList();c.add("hello");c.add(new Name("f1","11"));c.add(new Integer(100));System.out.println(c.size());System.out.println(c);}
}






四、HashSet类


Set集合是一种不包含重复元素的Collection。是对AbstractSet类的扩展,它创建了一个类集,该类集使用散列表进行存储,而散列表则通过使用称之为散列法的机制来储存信息。在散列中,一个关键字的信息内容被用来确定唯一的一个值,称为散列码,它被用来当做与关键字相连的数据的存储下标。


Eg2:
import java.util.*;
public class BasicContainner{public static void main(String[] args){Collection c=new HashSet();c.add("hello");c.add(new Name("f1","11"));c.add(new Integer(100));c.remove(new Integer(100));System.out.println(c.remove(new Name("f1","11")));System.out.println(c);}
}class Name{private String firstName,lastName;public Name(String firstName,String lastName){this.firstName=firstName;this.lastName=lastName;}public String getFirstName(){return firstName;}public String getLastName(){return lastName;}public String toString(){return firstName + " " + lastName;}public boolean equals(Object obj){if(obj instanceof Name){Name name=(Name) obj;return(firstName.equals(name.firstName))&&(lastName.equals(name.lastName));}return super.equals(obj);}public int hashCode(){return firstName.hashCode();}
}




注意:
1、重写equal也要重写hashCode方法
2、当对象用作索引的时候,使用hashCode方法

五、HashMap类


    首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。HashMap类 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。 在HashMap中通过get()来获取value,通过put()来插入value,ContainsKey()则用来检验对象是否已经存在。可以看出,和ArrayList的操作相比,HashMap除了通过key索引其内容之外,别的方面差异并不大。

Eg3:
import java.util.*;
public class MyHashMap{public static void main(String[] args){HashMap hm=new HashMap();hm.put(1,'Z');hm.put(2,'H');hm.put(3,'O');hm.put(4,'U');System.out.print("添加元素后结果为:");System.out.println(hm);hm.remove(3);hm.put(2,"替换");System.out.print("删除和替换元素后的结果:");System.out.println(hm);}
}


六、小结


   这篇博客主要介绍了一下集合框架的概念、集合框架接口,以及列表、集合、映射三种结构。还需要在以后的运行中加强对集合框架的理解。


这篇关于邂逅Java集合框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093599

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件