Java 数据结构、集合框架、ArrayList

一、Java数据结构:

Java中的数据结构主要包含以下几种接口和类:枚举、位集合、向量、栈、字典、哈希表、属性。

枚举接口定义一种从数据结构中取回连续元素的方式。

位集合实现了一组可以单独设置和清除的位或标志。

向量类于传统数组相似,但向量的大小可以依据需要动态的变化。

栈实现后进先出的数据结构。

字典类是一个抽象类,它定义键映射到值的数据结构。字典定义的抽象方法:

序号

方法描述

1

Enumeration elements( )
返回此 dictionary 中值的枚举。

2

Object get(Object key)
返回此 dictionary 中该键所映射到的值。

3

boolean isEmpty( )
测试此 dictionary 是否不存在从键到值的映射。

4

Enumeration keys( )
返回此 dictionary 中的键的枚举。

5

Object put(Object key, Object value)
将指定 key 映射到此 dictionary 中指定 value。

6

Object remove(Object key)
从此 dictionary 中移除 key (及其相应的 value)。

7

int size( )
返回此 dictionary 中条目(不同键)的数量。

哈希表类提供一种在用户定义键结构的基础上来组织数据的手段。哈希表定义的方法:

序号

方法描述

1

void clear( )
 将此哈希表清空,使其不包含任何键。

2

Object clone( )
创建此哈希表的浅表副本。

3

boolean contains(Object value)
 测试此映射表中是否存在与指定值关联的键。

4

boolean containsKey(Object key)
测试指定对象是否为此哈希表中的键。

5

boolean containsValue(Object value)
如果此 Hashtable 将一个或多个键映射到此值,则返回 true。

6

Enumeration elements( )
返回此哈希表中的值的枚举。

7

Object get(Object key)
 返回指定键所映射到的值,如果此映射不包含此键的映射,则返回 null. 更确切地讲,如果此映射包含满足 (key.equals(k)) 的从键 k 到值 v 的映射,则此方法返回 v;否则,返回 null。

8

boolean isEmpty( )
测试此哈希表是否没有键映射到值。

9

Enumeration keys( )
 返回此哈希表中的键的枚举。

10

Object put(Object key, Object value)
将指定 key 映射到此哈希表中的指定 value。

11

void rehash( )
增加此哈希表的容量并在内部对其进行重组,以便更有效地容纳和访问其元素。

12

Object remove(Object key)
从哈希表中移除该键及其相应的值。

13

int size( )
 返回此哈希表中的键的数量。

14

String toString( )
返回此 Hashtable 对象的字符串表示形式,其形式为 ASCII 字符 ", " (逗号加空格)分隔开的、括在括号中的一组条目。

属性类表示一个持久的属性集。

二、Java集合框架:

Java集合框架主要包括两种类型的容器:1、集合(Collection),存储一个元素集合;2、图(map),存储键/值对映射。集合(Collection)接口有3中类型:list、set和queue。

集合框架定义的接口:

序号

接口描述

1

Collection 接口

Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。

Collection 接口存储一组不唯一,无序的对象。

2

List 接口

List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。

List 接口存储一组不唯一,有序(插入顺序)的对象。

3

Set

Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。

Set 接口存储一组唯一,无序的对象。

4

SortedSet
继承于Set保存有序的集合。

5

Map

Map 接口存储一组键值对象,提供key(键)到value(值)的映射。

6

Map.Entry
描述在一个Map中的一个元素(键/值对)。是一个 Map 的内部接口。

7

SortedMap
继承于 Map,使 Key 保持在升序排列。

8

Enumeration
这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。

三、Java ArrayList:

ArrayList类是可以动态修改的数组,没有固定大小的限制,可以添加、删除元素。

1、添加元素:

import java.util.ArrayList;

public class RunoobTest {
     public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
         sites.add("Google");
        sites.add("Taobao");
         sites.add("Weibo");
         System.out.println(sites);
     }
}

2、访问元素:

import java.util.ArrayList;

public class RunoobTest {
     public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
         sites.add("Google");
        sites.add("Taobao");
        sites.add("Weibo");
         System.out.println(sites.get(1));  // 访问第二个元素
     }
}

  1. 修改元素:

import java.util.ArrayList;

public class RunoobTest {
     public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google")
         sites.add("Taobao");
         sites.add("Weibo");
         sites.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
         System.out.println(sites);
     }
}

3、删除元素:

import java.util.ArrayList;

public class RunoobTest {
     public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
         sites.add("Google");
        sites.add("Taobao");
         sites.add("Weibo");
         sites.remove(3); // 删除第四个元素
         System.out.println(sites);
     }
}

4、计算大小:

import java.util.ArrayList;

public class RunoobTest {
     public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Taobao");
        sites.add("Weibo");
         System.out.println(sites.size());
     }
}

5、迭代数组列表:

import java.util.ArrayList;

public class RunoobTest {
     public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
         sites.add("Google");
        sites.add("Taobao");
        sites.add("Weibo");
         for (int i = 0; i < sites.size(); i++) {
             System.out.println(sites.get(i));
         }
     }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信也科技发布2023年Q3财报:数字金融服务业务增长稳健,持续拉动实体消费

11月21日&#xff0c;信也科技&#xff08;NYSE&#xff1a;FINV&#xff09;公布2023年第三季度未经审计的财务报告。财报显示&#xff0c;信也科技三季度在国内、国际市场延续稳健增长态势&#xff0c;实现季度营收31.98亿元&#xff08;人民币&#xff0c;下同&#xff09;&…

LeetCode 每日一题 2023/11/13-2023/11/19

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/13 307. 区域和检索 - 数组可修改11/14 1334. 阈值距离内邻居最少的城市11/15 2656. K 个元素的最大和11/16 2760. 最长奇偶子数组11/17 2736. 最大和查询11/18 2342. 数…

【Python入门教程】OpenCV在图片/视频上添加Logo(水印)

还是老样子&#xff0c;最近项目需要在视频上添加logo&#xff0c;所以就找了一下相关资料&#xff0c;然后写了一段代码&#xff0c;今天给大家分享一下如何使用Python的OpenCV库给图片或视频添加水印和logo。 一、导入库 OpenCV库导入的时候是cv2 import cv2 二、代码部分 …

BigDecimal的常见陷阱

文章目录 BigDecimal概述BigDecimal常见陷阱1.使用BigDecimal的构造函数传入浮点数2.使用equals()方法进行数值比较3.使用不正确的舍入模式 总结&#xff1a; BigDecimal概述 BigDecimal 是 Java 中的一个类&#xff0c;用于精确表示和操作任意精度的十进制数。它提供了高精度的…

UE 材质,如何只取0~1之间的值,其余值抛弃

假如0~1&#xff0c;floor为0&#xff0c;abs为0&#xff0c;Saturate为0&#xff0c;1-x为1&#xff0c;很好 假如1~2&#xff0c;floor为1&#xff0c;abs为1&#xff0c;Saturate为1&#xff0c;1-x为0&#xff0c;很好 假如2~3&#xff0c;floor为2&#xff0c;abs为2&am…

软件测试/人工智能丨引领未来:软件测试中的人工智能

在数字化潮流的推动下&#xff0c;软件测试领域正在经历一场革命性的变革&#xff0c;而这场变革的关键推手正是人工智能&#xff08;AI&#xff09;。AI的引入不仅加速了测试过程&#xff0c;而且赋予了测试领域新的可能性&#xff0c;将我们带入了一个前所未有的未来。 智能…

【MySQL--->用户管理】

文章目录 [TOC](文章目录) 一、用户管理表二、基本操作三、用户权限分配给用户某个数据库中某个表的某个权限. grant 权限 on 库.表名 to 用户名主机名. ![在这里插入图片描述](https://img-blog.csdnimg.cn/fe8eb171ef9343c3a09bd64d4f0db5c1.png)分配给用户某个数据库中全部表…

Golang CSV Reader

导言 CSV&#xff08;逗号分隔值&#xff09;是一种常见的文件格式&#xff0c;用于存储和交换数据。它简单易用&#xff0c;具有广泛的应用场景&#xff0c;因此在处理和解析 CSV 文件时需要一个高效和可靠的方法。Golang 提供了一个强大的 CSV Reader 库&#xff0c;可以简化…

13.Oracle通过JDBC连接Java

Oracle通过JDBC连接Java 一、什么是JDBC二、Oracle通过JDBC连接Java1、导入jar包1.1 下载jar包1.2 将jar包导入到java项目中1.3编译jar包 2、连接数据库2.1 编写jdbc工具类2.2 对数据进行基本操作 一、什么是JDBC JDBC&#xff08;Java Database Connectivity&#xff09;是Jav…

微波功率计/频率计-87234系列USB峰值/平均功率计

仪器仪表 苏州新利通 87234系列 USB峰值/平均功率计 频率范围覆盖&#xff1a;50MHz&#xff5e;67GHz 一款基于USB 2.0接口的二极管检波式宽带功率测量仪器 国产思仪功率计 01 产品综述 87234D/E/F/L USB峰值/平均功率计是一款基于USB 2.0接口的二极管检波式宽带功率测…

PowerShell无人参与安装最新版本SQL Server Management Studio (SSMS)

文章目录 下载SQL Server Management Studio (SSMS)Power Shell实现无人安装推荐阅读 下载SQL Server Management Studio (SSMS) SSMS 19.2 是最新的正式发布 (GA) 版本。 如果已经安装了 SSMS 19 预览版&#xff0c;需要在安装 SSMS 19.2 之前将其卸载。 如果安装了 SSMS 19.…

负载均衡Ribbon和Feign的使用与区别

Ribbon 的介绍 Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。主要功能是提供客户端的软件负载均衡和服务调用。Ribbon 客户端组件提供一系列完善的配置项如连接超时&#xff0c;重试等。简单的说&#xff0c;就是在配置文件中列出Load Balancer…

Spring中用了哪些设计模式

一.简单工厂模式 又叫做静态工厂方法&#xff08;StaticFactory Method&#xff09;模式&#xff0c;但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数&#xff0c;动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现…

JVM基础- 垃圾回收器

基本介绍 Java虚拟机&#xff08;JVM&#xff09;中的垃圾回收器是用来自动管理内存的关键组件。它负责识别并回收不再使用的内存&#xff0c;从而防止内存泄漏。不同的JVM实现提供了多种垃圾回收器&#xff0c;每种回收器都有其特定的使用场景和性能特点。以下是一些常见的JV…

C++ 正则表达式使用

C 11 以后有了正则表达式,对于处理字符串还是很方便的.由于我也再学习.所以下面的内容有可能描述的不准确,这些都是我自己代码中使用的,或者demo测试的. 首先使用正则表达式先要添加头文件 #include <regex> 然后编写自己的正则表达式: 例如我想匹配字符串中表示数字…

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成&#xff0c;本期紧跟着上期内容&#xff0c;生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…

【配置】Redis常用配置详解

文章目录 IP地址绑定设置密码 IP地址绑定 默认情况下&#xff0c;如果未指定 “bind” 配置指令&#xff0c;Redis 将监听服务器上所有可用的网络接口的连接。 可以使用 “bind” 配置指令来仅监听一个或多个选定的接口&#xff0c;后跟一个或多个 IP 地址 示例&#xff1a;bin…

集成多元算法,打造高效字面文本相似度计算与匹配搜索解决方案,助力文本匹配冷启动[BM25、词向量、SimHash、Tfidf、SequenceMatcher]

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

zabbix的安装配置,邮件告警,钉钉告警

zabbix监控架构 zabbix优点 开源&#xff0c;无软件成本投入server对设备性能要求低支持设备多&#xff0c;自带多种监控模板支持分布式集中管理&#xff0c;有自动发现功能&#xff0c;可以实现自动化监控开放式接口&#xff0c;扩展性强&#xff0c;插件编写容易当监控的item…

力扣C++学习笔记——C++ 给vector去重

要使用std::set对std::vector进行去重操作&#xff0c;您可以将向量中的元素插入到集合中&#xff0c;因为std::set会自动去除重复元素。然后&#xff0c;您可以将集合中的元素重新存回向量中。以下是一个示例代码&#xff0c;演示如何使用std::set对std::vector进行去重&#…