程序员==java基础===集合
2016-07-12 23:43
253 查看
J集合
集合
数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少数组和集合的区别
区别1 :
数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
区别2:
数组长度是固定的,不能自动增长集合的长度的是可变的,可以根据元素的增加而增长
单列集合:体系结构
1.Collection --
接口(单列集合的顶层接口)
----List接口 特点:存取有序(怎么存就怎么取),有索引,可以存储重复
ArrayList 类 底层数据结构数组
LinkedList 类 底层是链表数据结构
Vector 类
底层也是数组数据结构
---- Set
接口 特点:存取无序(存和取的顺不一致) , 没有索引, 不可以重复
HashSet 类 底层是哈希表(哈希算法)
TreeSet 类 底层数据结构是二叉树
首先介绍collection、是一个抽象的接口
1、是所有集合的父类,所有子类继承;
2.基本方法
怎么创建对象: 使用多态父类引用指向子类对象Collection c = new ArrayList();
boolean add(E e) 增加的方法 E代表Object (everything)
boolean remove(E e) 移除方法
void clear() 清空容器
boolean contains(Object o) 判断是否包含某一个对象
int size() 获取集合的长度
boolean isEmpty() 判断集合是否为空
3.遍历集合
把集合转成数组,再进行遍历
toArray();方法,后面还会学习一个方法方法,将集合转化成我们需要的类型的数组。在遍历数组
publicclass Demo_List { publicstaticvoid main(String[] args) { Collection<String > cc = new ArrayList<String>(); Object[] array= cc.toArray(); cc.clear(); for (inti = 0; i < array.length; i++) { cc.add((String) array[i]); } } } |
4.Collection
带All的方法
boolean addAll(Collection c) 这个方法只能添加集合, 并且添加进去的集合,与元集合融合.boolean removeAll(Collection c) 移除交集
boolean containsAll(Collection c) 判断这个集合中是否包含另一个集合
boolean retainAll(Collection c) 取交集(原集合改变返回true,原集合不变返回false)
5.迭代器
Iterator 接口, 作用相当与一个扫描器,遍历方式一个一个扫元素,扫到一个获取一个.如何获取迭代器对象.
Collectionc = new ArrayList();
Iteratorit= c.iterator(); //通过Collection的iterator()获取迭代器对象
1)先判断有没有元素 boolean hasNext()
boolean b = it.hasNext()
2) 获取元素
Objecto = it.next();
3)但是一般集合会有多个元素
Collectionc = new ArrayList();
c.add(newPerson())
c.add(newPerson())
Iteratorit= c.iterator(); //通过Collection的iterator()获取迭代器对象 具体的对象用的是ArrayList中的Itr内部类对象
while(it.hasNext()){ //如果为true就说有下一个元素
//就该获取
<strong><span style="font-size:14px;"></span></strong> |
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树