浅谈Collection集合
俗话说:一个东西,一件事都离不开三句话:“是什么,为什么,怎么办”
集合是什么:
集合简单的说一个数组集合的高级体现,用来存储数据或对象的容器;
集合为什么存在:
集合只是体现了对数据操作的灵活度;大大方便了开发者的效率;
集合怎么使用:
使用分了以下几种方式: Collection 集合 1.list 2.Set
List
| List | 底层数据结构 | 查询 | 增删 | 线程 | 效率 |
| ArrayList | 数组 | 快 | 慢 | 不安全 | 高 |
| Vector | 数组 | 快 | 慢 | 安全 | 低 |
| LinkedList | 链表 | 慢 | 快 | 不安全 | 高 |
Set
| Set | 底层数据结构 | 有序 | 唯一 | 排序 |
| HashSet | 哈希表 | 否 | 是(依赖hashCode()和equals()) | -- |
| LinkedhashSet | 链表和哈希表 | 是 |
是 由链表保证元素有序 |
-- |
| TreeSet | 红黑树 | -- | 是 |
a.自然排序 b.比较器排序 |
(4)Collection的功能概述
List cn=new ArrayList();
A:添加功能
add(Object e);//直接自然顺序插入
add(index, element);//按索引插入
B:删除功能
remove(index);//根据索引移除
C:判断功能
cn.contains(object e)//判断cn集合中是否存在元素e
D:获取功能
cn.get(index)//跟据索引获取值
E:长度功能
cn.size()//返回集合长度
F:交集(了解)
cn.retainAll(Collection c)//cn对c做交集
cn对c做交集 返回值是boolean值
有交集 则返回true 存在交际则cn集合中的值会返回交集值
无交集 则返回false
G:把集合转数组
cn.toArray()
(5)Collection集合的遍历
A:把集合转数组(一般不用)
遍历集合 改成 遍历数组
B:迭代器(集合专用方式)
迭代器
//创建cn集合对象的迭代器
iterator it=cn.iteraror();
while(it.hasnext())
{System.out.println(it.next())}
1:是集合的获取元素的方式。
2:是依赖于集合而存在的。
3:迭代器的原理和源码。
a:为什么定义为了一个接口而不是实现类?
简单的说:不管是哪一种集合,我们都要获取集合中的数据,并且在获取之前辅助于判断功能,也就是说在获取元素之前先进行判断,那么集合就有两个功能(判断,查询)。这样如果是实现类只能去实现某一个集合,反而接口可以做到,让子类自己去实现接口,这样就达到要求了;
(5)并发修改异常
A:出现的现象
迭代器遍历集合,集合修改集合元素
B:原因
迭代器是依赖于集合的,而集合的改变迭代器并不知道。
C:解决方案
a:迭代器遍历,迭代器修改(ListIterator)
元素添加在刚才迭代的位置
b:集合遍历,集合修改(size()和get())
元素添加在集合的末尾
(6)常见数据结构
A:栈 先进后出
B:队列 先进先出
C:数组 查询快,增删慢
D:链表 查询慢,增删快
浅谈Collection集合的更多相关文章
- 浅谈JAVA集合框架
浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...
- 浅谈 Java集合
Java 集合 集合是对象的容器,定义了多个对象进行操作的常用方法,可实现数组的功能. Java集合类库所处位置:java.util.*. 与现代的数据结构类库的常见做法一样,Java集合类库也将接口 ...
- 浅谈JAVA集合框架(转载)_常用的Vector和HashMap
原作者滴着:http://www.cnblogs.com/eflylab/archive/2007/01/20/625237.html Java提供了数种持有对象的方式,包括语言内置的Array,还有 ...
- 浅谈Swift集合类型
Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...
- 浅谈C#集合【转】
集合是.NET FCL(Framework Class Library)中很重要的一部分,也是我们开发当中最常用到的功能之一,几乎是无处不在.俗话说知其然,知其所以然,平常看到IEnumerable, ...
- 浅谈Java集合体系及底层实现原理
集合加载因子 https://blog.csdn.net/qq_34627002/article/details/79769261 底层原理: https://blog.csdn.net/qq_258 ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
- 铁乐学Python_day07_集合and浅谈深浅copy
1.[List补充] 在循环一个列表时,最好不要使用元素和索引进行删除操作,一旦删除,索引会随之改变,容易出错. 如果想不出错,可以采用倒着删除的方法,因为倒着删除进行的话,只是后面元素的位置发生了变 ...
- C#集合类型——Array、ArrayList、List 之浅谈
在学习或工作中,集合是经常用到的,可以换一句话说“无项目无集合”,“项目皆有集合”.它一般存储一系列数据或者将一系列数据进行相关操作.在这里先大略谈一些集合类型的相关知识用于回顾. 数组(Array) ...
随机推荐
- java设计模式之--单例模式
前言:最近看完<java多线程编程核心技术>一书后,对第六章的单例模式和多线程这章颇有兴趣,我知道我看完书还是记不住多少的,写篇博客记录自己所学的只是还是很有必要的,学习贵在坚持. 单例模 ...
- css样式之超出隐藏
文本超出部分隐藏,总结两种方法. 1.单行隐藏 html代码 <div class="mi">当文字超过范围的时候,超出部分会隐藏起来.</div> css ...
- T-SQL 拆分使用指定分隔符的字符串(split string)
比如有一个表,我们需要些一个语句像SELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......' , 然后就能返回分割成单独的行. 原表: | So ...
- github入门到上传本地项目【网上资源整合】
[在原文章的基础上,修改了描述的不够详细的地方,对内容进行了扩充,整合了网上的一些资料] [内容主要来自http://www.cnblogs.com/specter45/p/github.html#g ...
- 第14章 Linux启动管理(3)_系统修复模式
3. 系统修复模式 3.1 单用户模式 (1)在grub界面中选择第2项,并按"e键"进入编辑.并在"-quiet"后面加入" 1",即&q ...
- mono3.2和monodevelop4.0在ubuntu12.04上两天的苦战
首先第一步是设置ubuntu server 12.04版更新源,推荐中科大的比较快:deb http://debian.ustc.edu.cn/ubuntu/ precise main multive ...
- Nova PhoneGap框架 第十章 开发环境
10.1 Visual Studio + ReSharper PhoneGap程序由HTML.CSS和JS编写而成,这3种语言的编写你都可以用记事本来完成,但显然效率比较低,出错的概率也比较大.一个强 ...
- [ 技术人员创业Tips ] 1:抓住优质客户(上)
写一篇技术以外的内容,可能会得罪一些人,轻拍,此外本文写的比较随意,写到哪里算哪里,轻拍. IT业不知道从什么时候起特别流行谈创业,似乎不谈创业就落伍,我不评价这种风气的好坏,只提一些自己的一些经验和 ...
- .Net 面试题 3C(CTS,CLS,CLR)
1.CTS(Common Type System)通用类型系统 CTS不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展.任何以.NET平台作为目标的语言必须建立它的数 ...
- Atitit java onvif 开源类库 getProfiles getStreamUri
Atitit java onvif 开源类库 getProfiles getStreamUri 1. ONVIF Java Library by Milgo1 1.1. https://github. ...