Java中集合随笔

先上一张图:关于collection接口的

Java中集合随笔

一、Collection中的常用功能:

boolean add(Object e): 向集合中添加元素
void clear():清空集合中所有元素
boolean contains(Object o):判断集合中是否包含某个元素
boolean isEmpty():判断集合中的元素是否为空
boolean remove(Object o):根据元素的内容来删除某个元素
int size():获取集合的长度
Object[] toArray():能够将集合转换成数组并把集合中的元素存储到数组中

由于Collection是接口,不能实例化

所以Collection c = new Collection();这种写法是错误的

二、List子体系特点:

A:有序的(存储和读取的顺序是一致的)
B:有整数索引
C:允许重复的

1.List的特有功能:

void add(int index, E element) :将元素添加到index索引位置上
E get(int index) :根据index索引获取元素
E remove(int index) :根据index索引删除元素
E set(int index, E element):将index索引位置的的元素设置为element

(1)LinkedList特有功能:

LinkedList底层使用的是链表结构,因此增删快,查询相对ArrayList较慢
void addFirst(E e) :向链表的头部添加元素
void addLast(E e):向链表的尾部添加元素
E getFirst():获取链头的元素,不删除元素
E getLast():获取链尾的元素,不删除元素
E removeFirst():返回链头的元素并删除链头的元素
E removeLast():返回链尾的元素并删除链尾的元素

三、Set接口的特点:

Set体系的集合:
A:存入集合的顺序和取出集合的顺序不一致
B:没有索引
C:存入集合的元素没有重复

1.HashSet唯一性原理:

规则:新添加到HashSet集合的元素都会与集合中已有的元素一一比较
首先比较哈希值(每个元素都会调用hashCode()产生一个哈希值)
如果新添加的元素与集合中已有的元素的哈希值都不同,新添加的元素存入集合
如果新添加的元素与集合中已有的某个元素哈希值相同,此时还需要调用equals(Object obj)比较
如果equals(Object obj)方法返回true,说明新添加的元素与集合中已有的某个元素的属性值相同,那么新添加的元素不存入集合
如果equals(Object obj)方法返回false, 说明新添加的元素与集合中已有的元素的属性值都不同, 那么新添加的元素存入集合

四.Map集合

1.Map接口概述

A:Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储
B:Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。
C:Collection中的集合称为单列集合,Map中的集合称为双列集合。
需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

2.Map常用功能

A:映射功能:

V put(K key, V value) :以键=值的方式存入Map集合

B:获取功能:

V get(Object key):根据键获取值
int size():返回Map中键值对的个数

C:判断功能:

boolean containsKey(Object key):判断Map集合中是否包含键为key的键值对
boolean containsValue(Object value):判断Map集合中是否包含值为value键值对
boolean isEmpty():判断Map集合中是否没有任何键值对

D:删除功能:

void clear():清空Map集合中所有的键值对
V remove(Object key):根据键值删除Map中键值对

E:遍历功能:

Set

3.Map的两种遍历方式

Java中集合随笔

Original: https://www.cnblogs.com/xyy-520/p/8989914.html
Author: 酸辣小甜饼
Title: Java中集合随笔

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/569677/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring Cloud Feign+Hystrix自定义异常处理

    开启Hystrix spring-cloud-dependencies Dalston版本之后,默认Feign对Hystrix的支持默认是关闭的,需要手动开启。 feign.hys…

    Java 2023年6月6日
    092
  • java中的一维数组

    数组(array):是一种用于存储多个相同数据类型的存储模型(可以理解为容器) 数组定义和静态初始化 数组的两种定义格式: 格式1: 数据类型[] 变量名; 范例: int[] a…

    Java 2023年6月15日
    078
  • nginx入门教程

    nginx入门教程 一.概述 什么是nginx? Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 什么…

    Java 2023年5月30日
    084
  • this.$refs[formName].validate((valid) =>{} 无效,vue验证表单无效

    问题: this.$refs[formName].validate((valid) =>{}无效的问题,当验证通过的时候点确定按钮没有报错,也没有任何反应。 背景: ruoy…

    Java 2023年6月14日
    042
  • Java基础 awt Font 四种字体样式

    JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code packag…

    Java 2023年5月29日
    0113
  • Springcloud学习笔记44–springboot应用中利用反射调用某个类的某个方法

    之所以方法类SpringUtil能够灵活自如地获取ApplicationContext,就是因为spring能够为我们自动地执行了setApplicationContext。但是,…

    Java 2023年5月30日
    083
  • Spring Boot 整合 Redis

    创建redis缓存配置类,配置插件(较为固定) package com.xsha.servicebase; import com.fasterxml.jackson.annotat…

    Java 2023年6月7日
    047
  • SpringBoot下使用AOP做日志

    AOP实现接口执行时间的计算: SpringBoot项目导入spring-boot-starter-aop依赖 编写切面类 类上加@Aspect注解,表明这是一个切面类 类上加@C…

    Java 2023年6月6日
    063
  • [学习笔记] Java控制语句

    通常,程序的语句按编写的顺序依次执行,但执行顺序是可以是通过流程控制语句改变的。 Java有三种控制语句:中断语句、选择语句、循环语句。 中断语句 break语句 主要用在循环语句…

    Java 2023年6月5日
    052
  • redis分析系列之set命令

    前言 最近研究下redis源码,现在从最基本的命令行操作来分析,redis是如何处理命令操作的 redis的set命令操作 我们在redis-cli执行下面的命令 java;gut…

    Java 2023年6月5日
    086
  • Elasticsearch简介、倒排索引、文档基本操作、分词器

    lucene、Solr、Elasticsearch1、倒排序索引2、Lucene是类库3、solr基于lucene4、ES基于lucene 一、Elasticsearch 核心术语…

    Java 2023年6月13日
    087
  • 基于阿里云的JavaEE系统框架介绍

    基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等。七牛和阿里的都还可以。 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访…

    Java 2023年5月29日
    069
  • PHP上传文件类型检查

    Original: https://www.cnblogs.com/wxweven/archive/2012/11/13/2768410.htmlAuthor: wxwevenTi…

    Java 2023年6月9日
    055
  • Spring Tool 历史版本下载

    参考资料 说在前面 历史版本下载 规律 参考资料 Spring Tool Suit3下载地址 说在前面 官方目前只提供最新版本的 Spring Tool 4下载,并没有提供历史版本…

    Java 2023年6月9日
    072
  • Spring Ioc源码分析系列–Ioc源码入口分析

    Spring Ioc源码分析系列–Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列&…

    Java 2023年6月8日
    054
  • IllegalArgumentException :argument type mismatch

    上周学习的 封装查询语句,今天在使用中查询语句的封装就发现了一个异常 java.Lang.IllegalArgumentException:argument type mismat…

    Java 2023年6月5日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球