----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
java中不得不掌握集合框架技术
集合类和容器
为什么会出现集合?
在面向对象语言中,对事物的描述都是以对象的形式,所以为了方便对多个对象
的操作,就要对对象进行存储,集合就是存储对象的最常见的一种方式。
数组虽然也可以存储对象,但是长度是固定的;那么集合的长度是可变的。
所以数组可以存储任意数据类型,集合只能存储对象。
集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象
集合类比数组强大,类似于包装类与基本数据类型
两大接口
java集合类主要是由两个接口派生出来的
Collection
Set:不能存放重复对象
List:可存放重复对象,有序
Queus:队列
SortedSet:可对集合数据排序
Map
SortedMap:可对集合数据排序
Collection接口
方法:boolean add(Object o):该方法用于向集合里面添加一个元素,若集合
对象被添加操作改变了,返回ture
boolean addAll(Collection c):把集合里面的所有元素添加到指定集合里面去,如果集合
对象被添加操作改变了返回turn
void clear():清除集合里面的所有元素,将集合长度变为0
boolean contains(Object o)返回集合里是否包含集合c所有元素
boolean isEmpty():返回集合是否为空(长度是否为0)。
Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素。
boolean remove(Object o):删除集合中指定元素o。
boolean removeAll(Collection c):从集合中删除集合c里面的元素。若删除一个或以上返回true。
boolean retainAll(Collection c):从集合中删除集合c里不包含的元素。
int size():得到集合元素的个数。
Object[] toArray():把集合转成一个数组,所有集合元素编程数组元素。
public class Demo10 {
public static void main(String[] args) {
Collection<String> c = new ArrayList<String>();
c.add("A");
c.add("A");
c.add("A");
c.add("A");
//c.add(new Date());上面写了泛型,这个语句就是错误的了,因为泛型规定了加进来的类型!
System.out.println(c);
}
}
Iterater接口
Iterator主要遍历Collection集合中的元素,也有称为迭代精灵
boolean hasNext():若被迭代的集合元素还没有被遍历,返回ture
Object next():返回集合的下一个元素
void remove():删除集合上一次next()方法返回的元素。(若集合中有多个相同的元素
,都可以删除)
iterator 对于集合才能用,for不同,只要是循环都可用
迭代是取出集合中元素的一种方式
因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器
迭代器在Collection中有iterator方法,所以每一个子类集合对象都具备迭代器
集合遍历输出方式
Iterator:迭代输出
一旦操作集合的遍历输出,首先Iterator接口
ListIterator:Iterator子接口,专门输出List中的元素;
Enumeration:古老的输出方式,迭代Vector元素,被Iterator取代;
foreach:可输出数组和Iterable对象;
集合遍历输出方式:
1. Iterable接口(迭代遍历) 注:优先选择Iterator接口,遍历Collection里所有元素,也称为迭代器和迭代精灵;迭代是取出集合中元素的一种推荐方式。
2. Foreach循环 注:可以直接用,使用场合:数组和Iterable对象!
3. For循环 注:在()内实例化Iterable对象,进行遍历!
4. 先用toArray方法输出成为数组,再用Foreach循环!
第一个和第三个很类似,第二个和第四个很类似!
package com.itheima;
//遍历输出的四种方式
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class joinTest {
public static void main(String[] args) {
List<String> l = new ArrayList();
l.add("1");
l.add("2");
l.add("3");
l.add("4");
System.out.println(l);
/**
* 遍历输出:四种方式
*/
// 1、推荐使用的Iterator对象,迭代输出!
Iterator it = l.iterator();
while (it.hasNext()) {
System.out.println("迭代输出:" + it.next());
}
// 2、对集合进行fore循环!
for (String str : l) {
System.out.println("fore集合迭代输出:" + str);
}
// 3、for循环迭代,在for方法体内部实例化Iterator对象!
int i = 0;// for方法体内定义项不能出现多种不同类型
for (Iterator iter = l.iterator(); i < l.size(); i++) {
System.out.println("for循环迭代实例化输出:" + iter.next());
}
// 4、先将集合转换为数组,再利用数组的遍历输出;
Object[] o = l.toArray();
for (Object object : o) {
System.out.println("转换数组迭代输出:" + object);
}
}
}
----------------------- android培训 、 java培训 、java学习型技术博客、期待与您交流! ----------------------