Java学习苦旅(二十七)——Java中的集合框架

本篇博客将初略讲解Java中的集合框架及背后的数据结构。

集合框架介绍

Java 集合框架 Java Collection Framework,又被称为容器 (container),是定义在java.util包下的一组接口 interfaces 和其实现类 classes 。其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储(store)、检索(retrieve)、管理(manipulate),即平时我们俗称的增删查改(CRUD)。

类和接口总览

image-20220228120748948

image-20220228121200642

image-20220228122346647

红色代表接口

蓝色代表抽象类

黄色代表具体的实现类

接口

基本关系

image-20220228123158791

Collection:用来存储管理一组对象objects,这些对象一般被成为元素 elements。

Set:元素不能重复,背后隐含着查找/搜索的语义。

SortedSet:一组有序的不能重复的元素。

List:线性结构。

Queue:队列。

Deque:双端队列。

Map:键值对Key-Value-Pair,背后隐含着查找/搜索的语义。

SortedMap:一组有序的键值对。

Collection接口说明

常用方法

方法名说明
boolean add(E e)将元素e放入集合中
void clear()删除集合中所有元素
boolean isEmpty()判断集合是否没有任何元素,俗称空集合
boolean remove()如果元素e出现在集合中,删除其中一个
int size()返回集合中的元素个数
Object toArray()返回一个装有所有集合中元素的数组

代码示例

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;public class TestDemo {public static void main(String[] args) {Collection<String> list = new ArrayList<>();System.out.println(list.size());System.out.println(list.isEmpty());System.out.println("===============================");list.add("I");list.add("love");list.add("Java");System.out.println(list.size());System.out.println(list.isEmpty());System.out.println("===============================");Object[] array = list.toArray();System.out.println(Arrays.toString(array));for (String s : list) {System.out.println(s);}System.out.println("===============================");list.remove("love");for (String s : list) {System.out.println(s);}System.out.println("===============================");list.clear();System.out.println(list.size());System.out.println(list.isEmpty());}
}

执行结果为:

image-20220228130247300

Map接口说明

常用方法

方法名说明
V get(Object k)根据指定的k查找对应的v
V getOrDefault(Object k, V defaultValue)根据指定的k查找对应的v,没有找到用默认值代替
V put(K key, V value)将指定的k-v放入Map
boolean containsKey(Object key)判断是否包含key
boolean containsValue(Object value)判断是否包含value
Set<Map.Entry<K, V>> entrySet()将所有键值对返回
boolean isEmpty()判断是否为空
int size()返回键值对的数量

代码示例

import java.util.*;public class TestDemo {public static void main(String[] args) {Map<String, String> map = new HashMap<>();System.out.println(map.size());System.out.println(map.isEmpty());System.out.println(map.get("作者"));System.out.println("====================================");System.out.println(map.getOrDefault("作者","佚名"));System.out.println(map.containsKey("作者"));System.out.println(map.containsValue("佚名"));System.out.println("====================================");map.put("作者","鲁迅");map.put("标题","狂人日记");map.put("发表时间","1918");System.out.println(map.size());System.out.println(map.isEmpty());System.out.println(map.get("作者"));System.out.println("====================================");System.out.println(map.getOrDefault("作者","佚名"));System.out.println(map.containsKey("作者"));System.out.println(map.containsKey("佚名"));System.out.println("====================================");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println(entry.getKey());System.out.println(entry.getValue());}}
}

执行结果为:

image-20220228140540407

结尾

本篇博客仅是初略讲解Java中的集合框架,之后有机会将详细讲解。
上一篇博客:Java学习苦旅(二十六)——反射,枚举和lamda表达式

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

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

相关文章

OpenHarmony南向之LCD显示屏

OpenHarmony南向之LCD显示屏 概述 LCD&#xff08;Liquid Crystal Display&#xff09;驱动&#xff0c;通过对显示器上下电、初始化显示器驱动IC&#xff08;Integrated Circuit&#xff09;内部寄存器等操作&#xff0c;使其可以正常工作。 HDF Display驱动模型 LCD器件驱…

大数据时代的WEB运维高级架构师,Web系统运维工程师的实战成长之路

一、教程描述 本套WEB架构师教程&#xff0c;大小30.61G&#xff0c;共有183个文件。 二、教程目录 01-Web架构之单机时代&#xff08;共7课时&#xff09; 02-Web架构之集群时代&#xff08;共9课时&#xff09; 03-Web架构之DNS&#xff08;共6课时&#xff09; 04-Web…

【攻防世界】Reverse——secret-galaxy-300 writeup

由main函数查看相关代码&#xff0c;但是代码中并没有直接的关于flag的信息&#xff1a; int __cdecl main(int argc, const char **argv, const char **envp) {__main();fill_starbase(&starbase);print_starbase((int)&starbase);return 0; } void __cdecl fill_sta…

MYSQL InnoDB引擎

逻辑存储结构 架构 内存架构 磁盘结构 后台线程 事务原理 redolog undo log MVCC 基本概念 实现原理 隐藏字段 undo log readview

程序语言相关知识——偏向Eigen矩阵

1 查看 Eigen库表示的矩阵 方法 1.1 列矩阵x在监视中&#xff0c;这样查看&#xff0c;数值右侧的圈圈 可用于更新数值 随程序 1.2 比较全的方法&#xff1a;来自于知乎&#xff1a;https://zhuanlan.zhihu.com/p/625334009?utm_id0 1.3 eigen的用法&#xff1a;https://ww…

听GPT 讲Rust源代码--compiler(33)

File: rust/compiler/rustc_middle/src/macros.rs 在Rust源代码中&#xff0c;rust/compiler/rustc_middle/src/macros.rs文件的作用是定义了一些用于宏展开的辅助宏和宏规则。 首先&#xff0c;这个文件导入了许多其他相关的模块&#xff0c;这些模块定义了编译器内部所需要的…

如何使用 CMake 生成一个静态库

文章目录 tutorial_3/CMakeLists.txttutorial_3/src/CMakeLists.txtcmake_tutorial/tutorial_3/src/hello.cpptutorial_3/src/hello.h根目录的 CMakeLists.txtsrc 目录的 CMakeLists.txthello.cpp 和 hello.h构建过程总结 tutorial_3/CMakeLists.txt cmake_minimum_required(V…

关于对象存储的若干事

引言 最近在阅读鸣嵩的一篇文章&#xff0c;数据库的下一场革命&#xff1a;S3 延迟已降至原先的 10%&#xff0c;云数据库架构该进化了 收获很多&#xff0c;过去时间也基于对象存储做过一些功能实现&#xff0c;特记录下。关于鸣嵩&#xff1a; 曹伟&#xff0c;花名鸣嵩&am…

Redis入门-安装和启动

​ 大家好我是苏麟 , 今天开始聊聊Redis . 大纲 Redis简介官网 Redis下载Redis服务启动与停止Redis客户端图形工具 Redis简介 Redis是一个基于内存的 key-value 结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 Redis是一个开源&#xff08;BSD许可&#xff0…

GA算法简介

GA算法简介 前言一、GA是什么二、GA简介1.思想2.流程3.过程 前言 今天学习一下优化中非常出名的遗传(GA)算法 &#xff0c;它的起源可是来自达尔文的生物进化论。 一、GA是什么 百科定义&#xff1a;遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是…

【教3妹学编程-算法题】赎金信

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开森。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;最近一周都是大晴天&#xff0c;艳阳高照 2哥&#xff1a;是啊&am…

提升技术,必看的8个开源库,都很通俗易懂

提升技术&#xff0c;必看的8个开源库&#xff0c;都很通俗易懂 随着工作年限越来越高&#xff0c;越来越觉得闭门造车是一种非常不好的习惯&#xff0c;还是得多看看别人是怎么写代码的&#xff0c;毕竟人外有人嘛&#xff0c;所以我觉得多看看开源库的源码&#xff0c;是一种…