Java集合(一)什么是集合
什么是集合
1、集合类存放于java.util包中。
2、集合类型主要有3种:set(集)、list(列表)和map(映射)。
3、集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。
简单来讲:集合就是一个放数据的容器,准确的说是放数据对象引用的容器。
集合有哪些以及它们之间的关系
Java 集合框架主要结构图
为了能看懂第一张集合框架图,我们先讲解一下在这里会用到的UML类图的知识(这里就不展开具体讲解UML知识)。
1、实现:接口和实现类的关系
2、泛化:父类和子类之间的关系,继承就是泛化的一种
理解了UML类图之后,我们就能从第一张图中分析得知:
1、集合主要分为Collection和Map两个接口
2、Collection又分别被List和Set继承
3、List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和Vector
4、Set被AbstractSet实现,又分为2个子类,HashSet和TreeSet
5、Map被AbstractMap实现,又分为2个子类,HashMap和TreeMap
6、Map被Hashtable实现
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
├HashSet
└TreesSet
Map
├Hashtable
├HashMap
└TreeMap
Collection接口介绍
Collection作用就是规定了一个集合有哪些基本的操作
collection的常规用法:
Collection c = new ArrayList();Iterator it = c.iterator();while(it.hasNext()){Object ob = it.next();}
这里主要是插入数据,清空数据,是否包含,是否相等,集合里的数据个数和转化成数组这几种操作
比如 :
int size()
- 获取元素个数
boolean isEmpty()
- 是否个数为 0
boolean contains(Object element)
- 是否包含指定元素
boolean add(E element)
- 添加元素,成功时返回 true
boolean remove(Object element)
- 删除元素,成功时返回 true
Iterator<E> iterator()
- 获取迭代器
还有一些操作整个集合的方法,比如 :
boolean containsAll(Collection<?> c)
- 是否包含指定集合 c 的全部元素
boolean addAll(Collection<? extends E> c)
- 添加集合 c 中所有的元素到本集合中,如果集合有改变就返回 true
boolean removeAll(Collection<?> c)
- 删除本集合中和 c 集合中一致的元素,如果集合有改变就返回 true
boolean retainAll(Collection<?> c)
- 保留本集合中 c 集合中两者共有的,如果集合有改变就返回 true
void clear()
- 删除所有元素
还有对数组操作的方法:
Object[] toArray()
- 返回一个包含集合中所有元素的数组
<T> T[] toArray(T[] a)
- 返回一个包含集合中所有元素的数组,运行时根据集合元素的类型指定数组的类型
在 JDK 8 以后,Collection 接口还提供了从集合获取连续的或者并行流:
Stream<E> stream()
Stream<E> parallelStream()
于Collection接口相关还有一个抽象类AbstractCollection:
AbstractCollection是一个抽象类,实现了Collection接口的部分功能,实现了一些最基本的通用操作,把复杂的和业务相关的延迟到子类实现。
在AbstractCollection中,主要实现了contains(), isEmpty(), toArray(), remove(), clear() 这几个操作。有兴趣的同学可以自行研究下,逻辑都比较简单。
总结:本章已经简单的介绍了集合框架里面的结构。具体每个集合的分析放到后面的章节
Java集合(一)什么是集合相关推荐
- Java基础知识回顾之四 ----- 集合List、Map和Set
前言 在上一篇中回顾了Java的三大特性:封装.继承和多态.本篇则来介绍下集合. 集合介绍 我们在进行Java程序开发的时候,除了最常用的基础数据类型和String对象外,也经常会用到集合相关类. 集 ...
- JAVA语言基础-面向对象(集合框架02List、泛型)
2019独角兽企业重金招聘Python工程师标准>>> 16.01_集合框架(去除ArrayList中重复字符串元素方式)(掌握) A:案例演示 需求:ArrayList去除集合中字 ...
- 2019-05-26 Java学习日记之Set集合
HashSet存储字符串并遍历: package com.set;import java.util.HashSet;public class Demo1 {/*** Set集合,无索引,不可以重复,无 ...
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
- java 泛型集合 json_将泛型集合转换成分页json数据
[java]代码库package com.sunweb.util.jsonfactory; import java.util.List; import com.sunweb.util.jsonfact ...
- java创建集合有的不用泛型_为什么在Java泛型右手边的集合类型没有任何影响?...
使用Java的Generics功能我创建了一个List对象,在左侧我使用的是原始类型List,在右侧我使用的是泛型类型ArrayList. List myList=new ArrayList(); 我 ...
- (Java集合框架)Map集合
Map集合 概述 现实生活中,常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对象 ...
- java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet
前两篇文章分别分析了Java的ArrayList和LinkedList实现原理,这篇文章分析下HashSet和LinkedHashSet的源码.重点讲解HashSet,因为LinkedHashSet是 ...
- java list取值_Java集合详解
一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...
- java集合——映射表+专用集合映射表类
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--映射表+专用集合映射表类 的相关知识: 0.2) for full sour ...
最新文章
- 模板方法模式(TemplateMethod) 简介
- 【五】搜索推荐技术在电商导购领域的应用——截图小王子
- ElasticSearch搜索实例含高亮显示及搜索的特殊字符过滤
- JAVA NIO是什么(zz)
- SAP CDS entity 中使用 @readonly 进行访问控制
- 如何编写 Cloud9 JavaScript IDE 的功能扩展
- 拒修电脑后,妹子又约我学机器学习,好烦(甜)!
- Redis(四):String字符串数据类型详解
- (转)微服务架构 互联网保险O2O平台微服务架构设计
- node.js第十课(HTTPserver)
- Docker自定义部署Redis镜像
- 项目中坑记录:mongo 插入失败无提示
- PHP压缩CSS文件
- java对象说明 PO,BO,VO,DTO,POJO,DAO,Entity
- 关于c++的return
- python open读取_读取文件—open()、read()
- Could not find artifact com.oracle:ojdbc7:pom:12.1.0.2 in central (https://r......的解决方案
- 微信怎么at所有人_[微信艾特所有人怎么弄]微信怎么艾特所有人
- Python写房贷计算器的算法
- mysql 外键约束失败_MYSQL:错误:无法添加或更新子行:外键约束失败