Java学习之路:集合
Posted smiling_and_crying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习之路:集合相关的知识,希望对你有一定的参考价值。
集合的由来
- 数组的长度是固定的,当添加的元素超过了数组的长度,就需要对数组重新定义
- java内部给我们提供的集合类,能存储任意对象,长度是可以改变的。随着元素的增加而增加,随着元素的减少而减少
数组和集合的区别
- 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
- 集合只能存储引用数据类型(对象Object),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象 eg:int==>Integer
- 数组长度是固定的,不能自动增长
- 集合的长度是可变的,可以根据元素的增加而增长
如果元素的个数是固定的,我们使用数组
如果元素的个数不固定,我们使用集合
集合Collection类:
- list:有序集合,有索引。存与取的顺序一样,可以重复
- ArrayList(数组实现)
- LinkedList(链表实现)
- Vector(数组实现)
- Set:无序集合,无索引。存与取的顺序不一样,不可以重复
- HashSet (哈希算法)
- TreeSet(二叉树算法)
ArrayList集合中部分数组实现的原理
eg:有个容量为10的初始化数组,当它不够用的时候,就会自动生成一个1.5倍大的数组,将值重新赋值后,把以前的那个小的数组垃圾回收了
Collection的几个基本方法
- boolean add(E e) 添加一个元素
- boolean remove(object o) 移除某一个元素
- void clear() 清空这个集合
- boolean contains(Object o)
- boolean isEmpty() 判断这个集合是否为空
- int size() 大小
- toArray() 将集合转化为数组
- boolean addAll(Collection c1) 将c1添加进来
- boolean removeAll(Collection c1) 移除this中还有的c1中的所有元素
- boolean containsAll(Collection c1) 判断this是否包含有c1中的所有元素
- boolean retainAll(Collection c1) 求并集
遍历一个集合,我们使用迭代器
迭代器是用来遍历集合中的每一个元素的
方法:hasNext()和next()
package lesson3; //这是一个小例子 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class null03 { public static void main(String[] args) { Collection c1 = new ArrayList();//这不就是多态? c1.add("A"); c1.add("B"); c1.add("C"); Iterator iterator = c1.iterator(); while(iterator.hasNext()){ Object o = iterator.next(); System.out.println(o); } } }
以上是关于Java学习之路:集合的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓