《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 安装并启动 ...
随机推荐
- maven-web项目中的一些小问题
1.最新的jetty容器 org.eclipse.jetty 需要JDK1.8的支持. 2.在容器中发布WEB项目时web 中的pom.xml的依赖关系会丧失,依赖和插件需要单独完全编写(尽管IDE会 ...
- SQL SERVER 2008 评估期已过
开始-->运行-->regedit 修改注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Config ...
- pm2.5检测统计
SELECT AVG(pm25_h),AVG(pm10_h),AVG(temp_h),AVG(humi_h),AVG(co2_h),AVG(tvoc_h),perf_time FROM( SELECT ...
- 弹层组件-layer
layer是Layui的一个弹层组建,功能强大,总之我很喜欢,下面介绍这个组件的基本用法. 首先如果只需要使用layer而不想使用Layui可以单独下载layer组件包,页面引入jquery1.8以上 ...
- SPSS数据分析—广义估计方程
广义线性模型虽然很大程度上拓展了线性模型的应用范围,但是其还是有一些限制条件的,比如因变量要求独立,如果碰到重复测 量数据这种因变量不独立的情况,广义线性模型就不再适用了,此时我们需要使用的是广义估计 ...
- hashmap 的作用
就是一个键值对应的集合HashMap a = new HashMap(); a.put("name", "abcdef"); // key是name,value ...
- Linux下配置Node.js环境
1.下载代码 下载地址:https://nodejs.org/en/download/ 下载Linux Binaries (.tar.xz)版本,位数根据操作系统位数选择 2.复制代码包 用FTP上传 ...
- uva 10271 (dp)
题意:有n个数据,给定k,要从中选出k+8个三元组(x,y,z,其中x<=y<=z),每选一次的代价为(x-y)^2,求最小代价和. [解题方法] 将筷子按长度从大到小排序 排序原因: 由 ...
- Ubuntu 16.04 安装 .NET Core[转]
upir@upir-Rev-1-0:~$ sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos ...
- Delphi 中同类型方法的说明
对象的方法能定义成静态(static).虚拟(virtual).动态(dynamic)或消息处理(message).请看下面 的例子: TFoo = class procedure IAmAStati ...