笔记:Java集合框架(一)

Java集合框架(一)

Collection接口

继承结构

笔记:Java集合框架(一)

Iterator接口

Iterator接口定义了迭代器的基本方法

java;gutter:true; hasNext() 如果迭代具有更多元素,则返回 true</p> <p>next() 返回迭代中的下一个元素</p> <p>remove() 从底层集合中删除此迭代器返回的最后一个元素</p> <pre><code> ### Collection接口,List接口,Set接口 Collection接口是所有List,Set集合的接口,所有集合框架都在java.util包下。 List,Set接口为他的实现类制定了详细的规则,其中List下的实现类是有序的,Set下的实现类是无序的。 在List的实现类中可以包含重复元素,但在Set的实现类中不能包含重复元素。 ### ArrayList ,LinkedList 类 **ArrayList 类**是基于数组实现的,为了解决数组只能设置固定长度而生。在ArrayList类中,集合长度是随着数组中元素而动态变化的,可以理解为长度动态变化的数组,初始容量为10 ,通常预估所需容量,减少扩容次数。 **LinkedList类**是一个双向链表,实用于需要大量随机插入元素时,ArrayList处理此问题性能较差。 双向链表实现了List和Deque接口。 实现所有可选列表操作,并允许所有元素。因为双向链表实现了Deque双端队列接口,因此双向链表可以作为队列来使用。 **ArrayList,LinkedList常用方法(List接口声名):** ;gutter:true;
Add(E e) 将指定元素添加到表尾

Add(int index , E element) 在指定位置插入元素

addAll(Collection c) 将Collection集合中的所有元素添加至表尾

addAll(int index , Collection c) 将Collection集合中所有的元素插入指定位置

addFirst(E e) 在列表开始插入元素

addList(E e) 在列表结尾插入元素

clear() 清空链表

contains(Object o) 如果链表包含此元素返回true

indexOf(Object o) 返回链表中第一次出现的索引

get(int index) 返回列表中指定位置的元素

isEmpty() 此链表不包含元素返回true

set(int index, E element) 用指定的元素(可选操作)替换此列表中指定位置的元素

LinkedList作为队列常用方法(Deque接口声名):

java;gutter:true; element() 检索但不删除第一个元素</p> <p>getFirst() 返回第一个元素</p> <p>getLast() 返回最后一个元素</p> <p>indexOf(Object o) 返回列表中指定元素第一次出现的索引</p> <p>element() 检索但不删除第一个元素</p> <p>getFirst() 返回第一个元素</p> <p>getLast() 返回最后一个元素</p> <p>offer(E e) 将指定元素添加到表尾</p> <p>offerFirst(E e) 在链表前插入指定元素</p> <p>offerLast(E e) 在列表尾插入指定元素</p> <p>peek() 检索但不删除第一个元素</p> <p>peekFirst() 检索但不删除此列表的第一个元素</p> <p>peekLast() 检索但不删除此列表的最后一个元素</p> <p>poll() 检索并删除此列表的头(第一个元素)</p> <p>pollFirst() 检索并删除此列表的第一个元素</p> <p>pollLast() 检索并删除此列表的最后一个元素</p> <p>pop() 从此列表表示的堆栈中弹出一个元素</p> <p>push(E e) 将元素推送到由此列表表示的堆栈上</p> <p>remove() 检索并删除此列表的头</p> <p>remove(int index) 删除该列表中指定位置的元素</p> <p>remove(Object o) 从列表中删除指定元素的第一个出现</p> <pre><code> ### TreeSet,HashSet类 TreeSet类是一个基于红黑树(自平衡二叉树)实现的集合,唯一,无序性。 HashSet 类是一个基于哈希表实现的集合( 底层由HashMap实现 ),唯一不可重复。 两者都是非线程安全的。 HashMap 底层将处理方法几乎完全交给HashMap处理 ,HashMap的数据存储是通过链表+红黑树+数组实现的,首先通过hash函数计算在数组中存储位置,如果该位置已经有值了,判断key是否相同,如果相同则覆盖,不相同放到元素对应的链表中(通过链表+红黑树解决哈希冲突问题),如果链表长度大于8,就转化为红黑树。 **常用方法(Set接口声名):** ;gutter:true;
add(E e) 如果指定的元素不存在,则将其指定的元素添加

addAll(Collection c) 将指定集合中的所有元素添加到此集合

clear() 从此集合中删除所有元素

contains(Object o) 如果此集合包含指定的元素,则返回 true

containsAll(Collection c) 判断集合是否全部包含指定集合的所有元素

isEmpty() 如果此集合不包含元素,则返回 true

iterator() 返回此集合中元素的迭代器

remove(Object o) 如果存在,则从该集合中删除指定的元

removeAll(Collection c) 从此集合中删除指定集合中包含的所有元素

retainAll(Collection c) 仅保留该集合中包含在指定集合中的元素

size() 返回此集合中的元素数

toArray() 返回一个包含此集合中所有元素的数组

toArray(T[] a) 返回一个包含此集合中所有元素的数组

参考文档JDK1.8 官方文档

Original: https://www.cnblogs.com/coisini-zheng/p/15911683.html
Author: 俭谨
Title: 笔记:Java集合框架(一)

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

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

(0)

大家都在看

  • haproxy

    1. haproxy简介 2. haproxy配置文件解析 3. haproxy搭建httpd负载均衡 4. 启动haproxy自带的监控界面 haproxy简介 HAProxy是…

    Linux 2023年6月13日
    0141
  • shell升级

    对/sbin/nologin的理解 系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行。 所谓”无法登陆”指的仅是…

    Linux 2023年5月28日
    0111
  • 爱前端公开课学习笔记——JS03 运算符

    运算符的概述和加减运算课程丢失 乘法* 除法/ 直接在控制台中演示 主要是不要省略乘号 字符串不能进行乘除法运算 布尔型可以进行乘除法运算 false: 0 true: 1 乘除法…

    Linux 2023年6月14日
    088
  • POJ1475(Pushing Boxes)–bbffss

    假设只有一个箱子。游戏在一个R行C列的由单位格子组成的区域中进行,每一步, 你可以移动到相邻的四个格子中的一个,前提是那个格子是空的;或者,如果你在箱子旁边,你也可以推动箱子前进一…

    Linux 2023年6月7日
    0109
  • linux_arch

    由于以前新手开始接触的是ubuntu,然后通过ubuntu又开始了解centos,这俩系统基本是稳定版本可以用作服务器,但是centos的还是居多,一来比较接近redhat;但是这…

    Linux 2023年6月14日
    096
  • 每周一个linux命令(netstat)

    基础环境 netstat 命令介绍 打印网络连接、路由表、接口统计信息、伪装连接和多播成员,使用最多的是打印网络连接信息。 netstat 命令安装 yum install net…

    Linux 2023年6月8日
    0100
  • 九、磁盘管理

    (一)磁盘基础知识磁盘–硬盘(机械,固态) 磁盘结构https://www.jianshu.com/p/cf100e39ccdf 扇区、磁道、柱面 扇区默认大小是512…

    Linux 2023年6月7日
    0127
  • 出现 Expected 0 arguments but found 1 的bug原因

    问题:在给FileInputStream传入参数时报错 原以为是导错了包,结果试了几次都不行,最后才发现是项目名和这个方法名重复了,修改项目名就可以了! 红线处只是异常,抛出即可解…

    Linux 2023年6月7日
    0113
  • 【已解决】wordpress 修改固定链接 伪静态URL出现nginx 404错误

    一、站点设置 打开站点设置,选择伪静态,选择wordpress 二、wordpress设置 打开wordpress后台,选择 设置 —》固定链接 选择一个你喜欢的格式点…

    Linux 2023年6月14日
    0111
  • 输入输出函数

    IDLE name=input(‘输入’) print(name) print函数 print(1,2) print(1,2,sep=",") input函数 …

    Linux 2023年6月8日
    094
  • 【EventOS Nano】EventOS Nano初步了解

    EventOS Nano是什么? EventOS Nano是一个面向单片机、事件驱动的、分布式的、可跨平台开发的嵌入式开发平台。主要有两大技术特色: 事件驱动和 超轻量 Event…

    Linux 2023年6月13日
    094
  • 正则表达式在grep中的使用

    GREP用法 grep "after" profile #查找文件内的包含after单词的行 grep -n "after" profile…

    Linux 2023年6月11日
    0101
  • 【SHELL】在指定格式的文件中查找字符串

    在指定格式的文件中查找字符串 grep -nr "string" –include=*.{c,cpp,h} 在排除指定格式的文件中查找字符串 grep -nr…

    Linux 2023年5月28日
    0138
  • zabbix 报表动作日志 报错”503“

    本文来自博客园,作者:xiao智,转载请注明原文链接:https://www.cnblogs.com/yuwen01/p/16216868.html Original: https…

    Linux 2023年6月13日
    0111
  • SpringBoot学习笔记——Redis Template

    Springboot可以通过redis template和redis进行交互,使用方法如下 可以参考这个系列的文章: 【快学springboot】11.整合redis实现sessi…

    Linux 2023年5月28日
    0104
  • CentOS 7上安装和配置Ghost

    Ghost是一个轻量级的开源博客平台,易于使用。Ghost是完全可定制的,有许多主题可用。 在本教程中,您将在CentOS 7上设置Ghost。您还将配置Nginx以代理对Ghos…

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