一、集合的概念
集合是指集中存放一组对象的一个对象。集合相当于一个的容器,提供了保存、获取和操作其他元素的方法。
二、数组和集合的区别
1.数组长度固定,一旦创建后不能发生变化;集合长度可变,根据添加的数据进行自动扩容。
2.数组可以存储基本数据类型和引用数据类型;集合可以存引用数据类型,不过不能直接存基本数据类型,要将基本数据类型变成其对应的包装类才能存储。
三、集合的操作
四、ArrayList类
1.创建集合的对象
ArrayList<E> list = new ArrayList<E>();
JDK7使用菱形语法,创建泛型类型仅用一对尖括号:ArrayList<E> list = new ArrayList<>();
注意:
<E>是泛型,限定集合中存储数据的类型;
对list对象进行打印时,打印对象不是地址值,而是集合中存储数据内容,在打印输出时会拿[]把所有的数据进行包裹。
2.ArrayList成员方法
常用方法boolean add(E e)增、boolean remove(E e)\ E remove(int index)删、E set(int index,E e)改、查 E get(int index)\int size()。
3.基本数据类型对应包装类
byte | Byte |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。基本类型的数据不具备"对象"的特性(没有成员变量和成员方法可以调用),因此,java为每种数据类型分别设计了对应的类,即包装类。
五、Collectons类
1.Collection集合概述和使用
1、Collection集合是单例集合,它是一组对象,这些对象也称为Collection的元素
2、JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
创建Collection集合的对象:
1、多态的方式
2、具体的实现类ArrayList
2.Collections成员方法
常用方法
增:boolean add(E e);
boolean addAll(Collection<? extends E> c);
删:boolean remove(Object o);
boolean removeAll(Collection<?> c);
改:Collection Interface 里并没有直接改元素的操作,因为删和增就可以完成。
查:boolean contains(Object o);
boolean containsAll(Collection<?> c);
集合整体的操作
判断集合是否为空:boolean isEmpty();
集合的大小:int size();
把集合转成数组:Object[] toArray();
3.Collections类的遍历
Iterator:迭代器,集合的专用遍历方式
1、Iterator<E>iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
2、迭代器的通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的
Iterator中常用的方法
1、E next():返回迭代中的下一个元素
2、boolean hasNext():如果迭代具有更多元素,则返回ture
六、迭代器
1.迭代器概念
它是一种接口,用于遍历集合,集的元素。它位于集,集合每个元素的中间,通过移动迭代器其位置来遍历元素。集合,集(比集合更严格的一种)中都存在迭代器。
2.Iterator接口的常用方法:
修饰语和类型 | 方法 | 描述 |
---|---|---|
boolean | hasNext() | 判断集合中还有没有可以被取出的元素,如果有返回true |
E | next() | 取出集合中的下一个元素 |
七、List集合
List集合特点:元素有序的,且可重复。(元素有序不是指,我们存进Lits集合中的什么1,3,7,6他给我们从小到大,或者从大到小这样子,所谓的有序是我们该集合有下标,下标从0开始,然后我们按照什么顺序增加到list集合的,那么他就是什么样子的顺序)。
List集合遍历:根据下标,foreach,迭代器遍历数据。
Lits集合扩容:Lits集合当我们实例出来,它的默认初始容量为10,当往List集合里面增加的数据超过10个以后,他就会扩容增加0.5倍,扩容以后就是15。
新容量 = 原容量 + 原容量 * 0.5
注意:vector,ArrayList,LinkedList都是继承List,所以和Lits集合以上三点都是一样的。
八、LinkedList集合
1、LinkedList的概念
LinkedList类是List接口的链表实现类。它支持实现所有的List接口可选的列表的操作
并且允许元素值是任何数据类型,包括null。
LinkedList集合底层数据结构为链式表;查询慢,增删快,线程不安全,效率高。
2、 LinkedList的常用方法:
方法 说明
void addFirst(Object obj) 将指定元素插入到集合的首部
void addLast(Object obj) 将指定元素插入到集合的尾部
Object getFirst() 获得集合中的第一个元素
Object getLast() 获取集合中的最后一个元素
Object removeFirst() 移除第一个元素
Object removeLast() 移除最后一个元素
九、Vector集合
1、Vector特点
有序的,可以存储重复值和null值。
底层是数组实现的,线程安全。结构与ArrayList非常相似,同样是一个线性的动态可扩容数组。
初始容量是10,没有设置扩容增量的情况下以自身的2倍容量扩容,可以设置容量增量,初始容量和扩容量可以通过构造函数public Vector(int initialCapacity, int capacityIncrement)进行初始化。
2、Vector的特有功能:
public void addElement(Object obj)------->add(Object obj)
public Enumeration elements():返回此向量的枚举--->相当于:public Iterator iterator()
boolean hasMoreElements() --->boolean hasNext() ;
Object nextElement() --->Object next() ;