Java基础——集合
java的集合类是一个工具类,存放在java.util包中。它不仅可以存储对象,也可以实现常用数据结构,如栈、队列等。严格的说,集合类存放的是对象的引用,而不是对象本身。
java集合主要由这两个接口派生产生:Collection和Map。Collection体系中又包括Set,Queue,List。其中Collection和Map是java集合框架的根接口,他们又包括了一些子接口和实现类。
一、Collection集合体系
在Collection体系中,有三个子接口List、Set和Queue。每个子接口下列举了常用的实现类或接口。比如List下的ArrayList,Set下的HashSet等。
Collection中提供了集合的基本操作,其中方法的使用我们后面会涉及到。
public interface Collection<E> extends Iterable<E> {
// Query Operations
//查询操作
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
// Modification Operations
//修改操作
boolean add(E e);
boolean remove(Object o);
// Bulk Operations
//批量操作
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
void clear();
// Comparison and hashing
//比较和哈希
boolean equals(Object o);
int hashCode();
}
1)List
List集合是元素有序可重复的。
他和数组十分类似,List的长度可以改变。
Demo:
public static void main(String[] args){
List list=new ArrayList();
System.out.println("===开始放入===");
list.add("a");
System.out.println("list集合存入一个元素===");
list.add("b");
System.out.println("list集合存入一个元素===");
list.add("b");
System.out.println("list集合存入一个元素===");
System.out.println("===开始读取===");
for (int i = 0; i < list.size(); i++) {
System.out.println("读取list的第【"+i+"】个元素,元素是:"+list.get(i));
}
}
输出:
2)Set
Set集合中的元素是无序的,可以重复的。就像一个盒子一样,他的个体都是去重的,不允许添加重复的元素。而正因为他只是个“盒子”或者“罐子”,无法维护元素的顺序。
3)Queue
Queue是模拟队列的,大家都知道,队列是FIFO先进先出的。与List、Set相比,除了Collection接口中定义的基本方法外,Queue就需要一些自己的方法了。
比如:
offer() 将元素加入队列尾部
poll() 获取队列头部元素,并删除。
element() 获取队列头部元素
peek() 获取队列头部元素,如果队列为空,返回null。
Demo:
public static void main(String[] args){
PriorityQueue priorityQueue=new PriorityQueue();
//存入四个元素
priorityQueue.offer(2);
priorityQueue.offer(4);
priorityQueue.offer(6);
priorityQueue.offer(8);
//输出队列
System.out.println("队列元素:"+priorityQueue);
//获取队列的头部的元素
System.out.println("头部元素:"+priorityQueue.element());
}
输出:
二、Map集合体系
上图简单描述了map体系结构,map就有映射的意思,所有map的实现类都是用于保存具有映射关系的数据,即相关联的数组,key-value的键值对。
Map集合也像一个“罐子”、“盒子”,与Set盒子最大的不同是,他里面的每个数据都由每两个值组成。
Demo:
public static void main(String[] args){
//定义map,放入元素
Map map=new HashMap();
map.put("name", "Sherry");
map.put("sex", 1);
map.put("score", 98);
//输出map
System.out.println(map);
System.out.println("是否包含“name”key:"+map.containsKey("name"));
System.out.println("========================");
//遍历map集合
for(Object key:map.keySet()){
System.out.println(key+"-->"+map.get(key));
}
}
输出:
Java基础——集合的更多相关文章
- JAVA基础-集合(二)
一.Map整体结构体系 Map是集合的另一大派系,与Collection派系不同的是Map集合是以键值对儿的形式存储在集合的.两个键为映射关系,其中第一个键为主键(主键是唯一的不可重复),第二个键为v ...
- Java基础-集合的嵌套
Java基础-集合的嵌套 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.静态导入 静态导入是在JDK1.5后的新特性,可以减少开发的代码量,但是实际用处是很一般,静态导入的标准 ...
- Java基础——集合框架
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...
- java基础---集合(1)
一. 基本概念 集合.数组都是对多个数据进行存储操作的结构,简称Java容器 数组:长度确定,类型确定,对于添加.删除.插入等操作效率不高,元素有序可重复 Java中集合框架顶层框架是:java.ut ...
- Java基础——集合源码解析 List List 接口
今天我们来学习集合的第一大体系 List. List 是一个接口,定义了一组元素是有序的.可重复的集合. List 继承自 Collection,较之 Collection,List 还添加了以下操作 ...
- Java基础—集合
一.概述 Java中的集合框架主要分为两大派别:Collection 和 Map —— 位于util包下 类的基础关系图如下(图片来自百度) 常用: List——有序可重复 Set——无序不可重复 M ...
- java基础集合简介Set(三)中
今天主要说夏set集合,每天抽出一个小时总结下,生活会更加美好! --< java.util >-- Set接口: 数据结构:数据的存储方式: Set接口中的方法和Collection中方 ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- 十七、Java基础---------集合框架之Map
前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...
- 十六、Java基础---------集合框架之Set
写在前面的话,这篇文章在昨天就写好了,今天打开的时候一不小心将第二天的文章粘贴到了这篇文章,很不幸的是除了标题之外依然面目全非,今天带着沉痛的心情再来写这篇文章! 上篇文章介绍了Collection体 ...
随机推荐
- 模块socket使用
什么是socket:socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.我们无需再去深入理解tcp/udp协议,按照socket的规定去使用就行了. 首先一个c/s架构:分为两 ...
- 判断js中数据类型 的最短代码
判断字符串类型的: function isString(obj) { return obj+"" === obj; } 判断bool类型的: function isBool(obj ...
- DOM查询
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 如何解决thinkphp5中验证码常见问题?
对于thinkphp如何实现验证码,我这里就不介绍了.直接看之前的文章 http://www.cnblogs.com/qqblog/p/6639419.html.下面,我能想出来的是,我自己在开发过程 ...
- springcloud生态图
springcloud生态图
- php获取客户端IP地址、所在地、操作系统、浏览器信息
本实例主要实现获取客户端的IP,再根据获取的IP获取所在地,还可以获取用户当前电脑使用的操作系统以及用户是通过什么浏览器进行访问的. 您可以在这里查看具体演示和下载demo http://www.j ...
- 初识python 字符串 列表 字典相关操作
python基础(一): 运算符: 算术运算: 除了基本的+ - * / 以外,还需要知道 : // 为取整除 返回的市商的整数部分 例如: 9 // 2 ---> 4 , 9.0 // ...
- C语言实例解析精粹学习笔记——35(报数游戏)
实例35: 设由n个人站成一圈,分别被编号1,2,3,4,……,n.第一个人从1开始报数,每报数位m的人被从圈中推测,其后的人再次从1开始报数,重复上述过程,直至所有人都从圈中退出. 实例解析: 用链 ...
- C# FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。"的错误
FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址."的错误 解决方法是在原代码上增加这句话 reqFTP.UsePassive = f ...
- java图片识别 [Tesseract-OCR]
以下链接包含,安装包及程序运行需要的jar 包,中文资源包. 中文包使用方式:找到tessdata安装目录(我本地:C:\Program Files (x86)\Tesseract-OCR\tessd ...