《java集合概述》
JAVA集合概述: Collection:
|---List有序的:通过索引就可以精确的操作集合中的元素。元素是可以重复的。
List提供了增删改查的动作。
增加add(element) add(index,element);
删除remove(element) remove(index);
修改set(index,element);
查询get(index);
|---Vector:是可增长的数组结构。是同步的。增和查速度都慢,效率很低.目前不在使用。
|---ArrayList:是数组结构,长度可变的,(原理是:创建新数组+复制数组,查询速度很快)是不同步的。
|---LinkedList:是链表结构,不同步的,增删的速度很快。查询速度较慢.
可用于实现堆栈和队列.
堆栈:先进后出First in Last Out FILO 手枪弹夹
队列:先进先出First in First Out FIFO 排队买票
List是可以存储重复元素的,如果需求中要求容器中的元素必须唯一性.则看下面的Set集合. |---Set:不包含重复集合元素的集合。而且方法和Collection一致。set集合取出元素只有一种:迭代器.
|--HashSet:哈希表结构,不同步,保证元素唯一性的方式依赖于:hashCode(),equals()方法,查询速度快,只能针对证唯一性的元素。
|--TreeSet:可以对set集合中的元素进行排序,使用的是二叉树结构,如何保证元素唯一性呢?
使用的对象比较的方法的结果是否为0,是0,视为相同元素,不存。
元素的排序比较方式有两种:
1,元素自身具备自然排序,其实就是实现了Comparable接口重写了compareTo方法
如果元素自身不具备自然排序,或者具备的自然排序不是所需要的,这时只能用第二种方式
2,比较器:其实就是在创建TreeSet集合时,在构造函数中指定具体的比较方式。
需要定义一个类实现Comparator接口,重写compare方法
到此为止,再往集合中存储对象时,通常该对象都需要覆盖hashCode,equals方法
同时实现Comparable接口,建立对象的自然排序。通常还有一个方法也会复写toString(); 看集合的小技巧:
集合分体系:List Set
子类对象的后缀名都是所属体系,前缀名都是数据结构名称.
List:新出的子类都是以List结尾的,通常都是非同步的。
|--ArrayList : 看到array,就知道数组,查询速度快
|--LinkedList : 看到link,就知道链表,增删速度快 Set:
|--HashSet:看到hash,就知道哈希表,查询速度更快,并想到元素唯一,通过hashCode(),equals方法保证元素唯一性
|--TreeSet:看到tree,就知道二叉树,可以排序,排序想到Comparable-compareTo Comparator-compare方法
《java集合概述》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 在重新生成解决方案时,出现的错误:无法将文件“obj\x86\Debug\*.exe”复制到“obj\Debug\*.exe”。文件正由另一进程使用,因此该进程无法访问此文件
此例是VS2010的CS项目. 在重新生成解决方案时,出现的错误. 解决步骤:先关闭解决方案,再在项目文件下的bin\Debug\*.exe删除这类之前生成得.exe文件,再在VS2010下重新生成.
- MySQL 显示版本、端口、状态
status select version() show global variables like 'port'
- 7 -- Spring的基本用法 -- 4...
7.4 使用 Spring 容器 Spring 有两个核心接口:BeanFactory 和 ApplicationContext,其中ApplicationContext 是 BeanFactory ...
- class命名
常见class关键词: 布局类:header, footer, container, main, content, aside, page, section 包裹类:wrap, inner 区块类:r ...
- Virtualbox安装USB2.0/3.0
系统:Ubuntu16.04 软件:Virtualbox5.1 1.打开Virtualbox,不启动虚拟系统. 2.点击设置->USB->启动usb2.0. 3.若发现不能启用,则到官网下 ...
- C指针的大小
应该说这是一个非常基础的问题,教科书上说指针大小和机器字长相同,即32位机指针长度为4字节!但是对不对呢?为什么是这样? 搜了一下相关资料...居然发现回答不统一,很多人也同样是糊里糊涂. 下面对这个 ...
- 张艾迪(创始人): 整合全新的UIW.AD概念
The World No.1 Girl :Eidyzhang The World No.1 Internet Girl :Eidyzhang AOOOiA.global Founder :Eidyzh ...
- 如何修改file控件
在移动web开发过程中,常常会用到input file这控件,但css不能修改其样式往往让开发者很头疼,直接把他放到页面上又不美观: 下面介绍的方法,可以将该控件的显示样式替换成一个图标: 该方法 ...
- xcode报错http
问题: Xcode项目发送网络请求时,报错:“App Transport Security has blocked a cleartext HTTP (http://) resource load s ...
- hexo deploy出错的解决方法
.ERROR Deployer not found: git 执行npm install hexo-deployer-git --save .$ hexo d INFO Deploying: git ...