文档章节

Java集合(一):简介

yuhuan121
 yuhuan121
发布于 2017/08/23 01:21
字数 839
阅读 5
收藏 0

1、概述

1.1、概念

Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,比如栈、对象等。此外,还可用于保存具有映射关系的关联数组。

1.2、优势

在我们的日常编程中,经常要集中存放多个数据。可以用数组来保存多个对象,但是数组的长度在初始化时就是不可变化的。此时,如果想要保存数量变化的数据,数组就无能无力了,而且,数组不能保存具有映射关系的数据。 数组元素可以是基本类型的值,也可以是对象(实际保存的是对象的引用);集合类只能保存对象。

1.3、分类

主要分为四种体系:

  • Set:代表无序、不可重复的集合;
  • List:代表有序、重复的集合;
  • Map:代表具有映射关系的集合;
  • Queue:代表一种队列集合的实现;

Set集合类相当于一个罐子,一个对象添加到Set集合时,集合不能记住添加这个元素的顺序,所以Set里的元素不能重复。若访问其中的元素,只能根据元素本身访问; List集合像一个数组,可以记住每次添加元素的顺序,且长度可变。若访问其中元素,可以根据元素的索引访问; Map也像一个罐子,里面的数据由两个值组成:key和value,可以根据每项元素的key来访问其value;

2、Collection接口

Java的集合类主要由两个接口派生而出:Collection和Map,是Java集合框架的根接口,又包含了一系列的子接口。

2.1、Collection接口的继承树

输入图片说明

2.2、Collection接口的基本操作

由于Collection接口是List、Set、Queue接口的父接口,其方法可以操作这三个集合,常见的方法如下:

  • boolean add(object o):向集合里添加一个元素; -void addAll(Collection c):把集合c里的所有元素添加到指定集合里; -boolean clear():清楚集合里所有元素;
  • boolean contains(object o):返回集合里是否包含所有元素;
  • boolean containsAll(Collection cobject o):返回集合里是否包含集合c里的所有元素;
  • boolean isEmpty():返回集合是否为空;
  • Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素;
  • boolean remove(object o):删除集合中指定元素o,若包含多个o时,只删除第一个符合条件的元素;
  • boolean removeAll(Collection c):从集合中删除集合c里包含的所有元素;
  • boolean retainAll(Collection c):从集合中删除集合c里不包含的元素;
  • int size():返回集合里元素的个数;
  • Object[] toArray():把集合转换成一个数组;

所有的Collection类都重写了toString()方法,可一次性地输出集合中的所有元素;

2.3、Collection的遍历

2.3.1、使用forEach()

2.3.2、使用Iterator接口

它是Collection接口的父接口,Iterator必须依附于Collection对象。 定义了3个方法:

  • boolean hasNext():若被迭代的元素还没被遍历完,则返回true;
  • Object next():返回集合里的下一个元素;
  • void remove():删除集合里上一次next方法返回的元素;

© 著作权归作者所有

共有 人打赏支持
yuhuan121
粉丝 0
博文 36
码字总数 38704
作品 0
佛山
程序员
使用IntelliJ IDEA创建Kotlin项目

一、kotlin被谷歌看中后,开始了突飞猛进的进步 下面来看一下维基百科关于Kotlin的介绍 简介: Kotlin是一种在Java虚拟机上运行的静态类型编程语言,它也可以被编译成为JavaScript源代码。它...

王木东
03/28
0
0
Google的Guava类库简介(转)

说明:信息虽然有点旧,至少可以先了解个大概。 Guava是一个Google的基于Java的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotat...

easonjim
2017/11/01
0
0
Apache Commons包简介

Components Description Latest Version Released BeanUtils 易于使用的包装在Java反射和内省API 1.9.2 2014-05-29 CLI 命令行参数解析 1.2 2009-03-19 Codec 一般的编码/解码算法(例如语音...

银月光海
2015/01/15
0
0
1.2.2 Ruby 简介和优势

Ruby 语言由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号Matz)于1993年起开始着手研究,经历2年时间,发不了Ruby语言的第一个版本:0.95版本。根据本行弘的描述:他一...

Gooiem
2015/08/13
0
5
Guava学习笔记 开篇(Google Guava 类库简介)

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这......

heroShane
2014/02/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

go语言学习总结

一、描述 go语言是直接将源码编译成二进制机器码的语言;它支持面向对象、也支持函数式编程;支持并发很容易; 二、基本语法学习路径 https://studygolang.com/subject/2...

盼望明天
29分钟前
2
0
JSP 九大内置对象及其作用域

JSP 中一共预先定义了 9 个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception ,下面就简单介绍下。 1、request 对象 request 对象...

几个栗子
40分钟前
1
0
Java中的坑之方括号

Java中的坑之方括号 这一段时间,在做项目的时候,发现了一个坑,这个坑说大不大,说小不小,不知道的足够喝一壶,知道的就可以轻松解决。 问题描述 在做数据统计的时候,遇见了如下形式的数...

星汉
50分钟前
2
0
[雪峰磁针石博客]python机器学习、web开发等书籍汇总

Building Machine Learning Systems with Python Third Edition - 2018.pdf 下载地址 Get more from your data by creating practical machine learning systems with Python Key Features ......

python测试开发人工智能安全
今天
1
0
文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部