Collection和Map集合
前言
集合的长度是可变的、集合存储的都是对象。而且对象的类型可以不一致。
Collection集合和Map集合是所有集合的父接口。
Collection接口定义
体系结构的根接口,代表一组对象,有两个子接口List、Set接口。
- List接口: 有序,有下标,元素可重复。
- Set接口: 无序,无下标,不能重复。
Collection接口抽象方法
public boolean add(E e)
: 把给定的对象添加到当前集合中 。public void clear()
:清空集合中所有的元素。public boolean remove(E e)
: 把给定的对象在当前集合中删除。public boolean contains(E e)
: 判断当前集合中是否包含给定的对象。public boolean isEmpty()
: 判断当前集合是否为空。public int size()
: 返回集合中元素的个数。public Object[] toArray()
: 把集合中的元素,存储到数组中。default Stream<E> parallelStream()
:把集合转变成流对象,进行Lambda表达式的使用。
Collection接口主要实现类
ArrayList
: 底层采用数组实现,有序,查询快,增删慢。LinkedList
: 底层采用双向链表实现,有序,查询慢,增删快。LinkedHashSet
: 底层采用散列表实现,使用链表+红黑树的搭配解决哈希冲突的问题,无索引、不可以存储重复元素,但是多了一个维护数据存储顺序的链表。HashSet
:底层采用散列表实现,使用链表+红黑树的搭配解决哈希冲突的问题,无索引、不可以存储重复元素、存取无序。
Map接口定义
元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。
Map接口抽象方法
public V put(K key, V value)
: 把指定的键与指定的值添加到Map集合中。public V remove(Object key)
: 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。public V get(Object key)
: 根据指定的键,在Map集合中获取对应的值。boolean containsKey(Object key)
: 判断集合中是否包含指定的键。public Set<K> keySet()
: 获取Map集合中所有的键,存储到Set集合中。public Set<Map.Entry<K,V>> entrySet()
: 获取到Map集合中所有的键值对对象的集合(Set集合)。
Map接口主要实现类
HashMap
: 底层采用散列表+链表+红黑树,线程不安全的Map。HashTable
: 现已不推荐使用,使用ConcurrentHashMap进行替换。但是他有一个子类Properties类,唯一一个和文件读取打交道的集合类。多用于配置文件的读取ConcurrentHashMap
: jdk1.8底层采用CAS+Synchronize技术来保障线程安全。底层采用数组+链表+红黑树的存储结构,也就是和HashMap一样。LinkedHashMap
:底层用的是链表来进行的存储,有序。
Properties文件读取类
定义:
是Java 语言的配置文件所使用的类。
常用方法:
public synchronized void load(Reader reader) throws IOException
: 加载需要读取的配置文件。public void store(Writer writer, String comments)throws IOException
: 加载需要写入的配置文件。public String getProperty(String key)
: 根据Key获取对应的value,key=value
。public synchronized V put(K key, V value)
:存储要写入的key和value。public void list(PrintStream out)
:遍历集合,输出所有的key和value。
tips:集合中key不能重复。
Collection和Map集合的更多相关文章
- Java Collection、Map集合总结
1.Java中的Collection集合总结 Collection |---List(存储有序,可重复) |---ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全.效率高 |--- ...
- scala中Map集合的简单使用
import scala.collection.mutable /** * Map集合的简单使用 */ object MapUse { def main(args: Array[String]): U ...
- Map集合及与Collection的区别、HashMap和HashTable的区别、Collections、
特点:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值. Map集合和Collection集合的区别 Map集合:成对出现 (情侣) ...
- 初识Java集合框架(Iterator、Collection、Map)
1. Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 注意: 既有接口也有类,图中画实线的是类,画虚线的是接口 使用之前须要到导入java.util包 List ...
- JAVA集合详解(Collection和Map接口)
原文地址http://blog.csdn.net/lioncode/article/details/8673391 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父 ...
- Java集合框架(Collection Framework)学习之 Collection与Map概貌
写过Java的人都知道Java集合类,也用过Java集合类.Java集合类位于 java.util 这个包下,就像它的包名暗示的那样,Java集合类就是一套工具.它就像工匠的工具箱一样,它能给使用它的 ...
- 【Java】集合概述Collection、Map
Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...
- 理解java集合——集合框架 Collection、Map
1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
随机推荐
- 【stm32】基于hal库使用野火指南者esp8266 WIFI模块进行TCP传输
UART.c #include "stm32f1xx_it.h" #include "LED.h" #include "UART.h" #i ...
- 第三十四个知识点:描述攻击离散对数问题的baby-step/Giant-step方法
第三十四个知识点:描述攻击离散对数问题的baby-step/Giant-step方法 Baby-step/Giant-step是Dnaiel Shanks为解决DLP问题开发的算法.DLP问题已经是许 ...
- 山寨F407板子如何烧录正点原子例程、Keil下载提示Invalid ROM Table
山寨F407板子如何烧录正点原子例程 手头这块块信赢达的STM32F407板子,是模仿正点原子探索者STM32F407板子的,外设和接口,几乎是一模一样. 探索者板子用的是STM32F407ZET6, ...
- Chapter 1 A Definition of Causal Effect
目录 1.1 Individual casual effects 1.2 Average casual effects 1.5 Causation versus association Hern\(\ ...
- NFS 部署
目录 NFS 部署 NFS简介 NFS应用 NFS工作流程图 NFS部署 服务端 客户端 测试NFS文件同步功能 NFS配置详解 NFS部分参数案例 统一用户 搭建考试系统 搭建步骤 配合NFS实现文 ...
- 《MYSQL高级查询与编程》综合机试试卷 - 云南农职美和易思
题目:银行mysql数据库系统管理 目录 题目:银行mysql数据库系统管理 一.语言和环境 二.题目(100分): 功能需求: 要求: 三.提交方式 四.评分标准: 五.实现代码: 创建表结构: 插 ...
- 编写Java程序,随机给定一个数字猜大小
返回本章节 返回作业目录 需求说明: 由系统随机生成一个1~100之间的整数. 通过控制台一直输入一个整数,比较该数与系统随机生成的那个数,如果大就输出"猜大了.",继续输入:如果 ...
- WiFi6模块 RW6852-PCIE
RW6852-PCIE是一款高度集成的模块,支持2T2R 802.11ax解决方案,具有MU-MIMO.无线LAN (WLAN) PCI Express网络接口控制器和HS-UART混合接口.它结合了 ...
- Selenium_界面的刷新、后退、前进操作(4)
import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driv ...
- MySQL_事务(四大特性)
本文转载:https://www.cnblogs.com/kismetv/p/10331633.html 事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首 ...