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体 ...
随机推荐
- Struts2知识点小结(三)--值栈与ognl表达式
1.问题一 : 什么是值栈 ValueStack 回顾web阶段 数据交互问题? 客户端提交数据 到 服务器端 request接受数据+BeanUtils实体封装 ...
- Vue组件:组件的动态添加与删除
一.实现效果 二.实现代码 HelloWorld.vue <template> <div class="hello"> <child-page v-f ...
- TCP三次挥手四次握手
三次握手: 客户端发起: 1.向服务器端发送报文SYN=1,ACK=0;客户端进入SYN-SEND状态. 2.服务端收到SYN=1,ACK=0的请求报文,向客户端返回确认报文SYN=1,ACK=1,服 ...
- Linux外在设备的使用
参考高峻峰 著 循序渐进Linux(第二版) 软盘在linux下对应的设备文件为/dev/fdx.主设备号fd是软盘驱动器(floppydisk)的缩写,次设备号x是软盘驱动器的相应编号.例如,/de ...
- 实现高可用-Keepalived
简介 Keepalived是HA Cluster(High Availability Cluster,高可用集群)的一个服务软件,用来防止单点故障. Keepalived采用VRRP(virtual ...
- 路由器基础配置之dhcp配置
我们将以上面的拓扑图为例,router9为dhcp的服务器,为pc4,5,6分配三个不同网段的地址,pool为要分配的三个地址池,我们要把pc4设置为12网段,pc5设置成34网段,pc6设置成56网 ...
- 富文本编辑器 summernote.js
1.引用js 可在 https://summernote.org/ 官网下载 ,并查看详细的API 引入:summernote.js 和 summernote-zh-CN.js 以及样式文件:su ...
- Mongoose模式的扩展
模式的扩展 默认值 默认值的类型: 固定值.即使生成 代码展示: var mongoose = require('mongoose');mongoose.connect('mongodb://loca ...
- 二叉树和二叉查找树--数据结构与算法JavaScript描述(10)
二叉树和二叉查找树 概念 树是一种非线性的数据结构,以分层的方式存储数据. 树被用来存储具有层级关系的数据,比如文件系统的文件: 树还被用来存储有序列表. 一棵树最上面的节点称为根节点. 如果一个节点 ...
- Java——equals方法---18.10.18
一.equals方法定义 public boolean equals(Object obj)方法 //提供对象是否“相等”的逻辑 二.”equals“和“==”的区别 1.“==”比较的是两个变量本身 ...