----------------------- 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学习型技术博客、期待与您交流! ----------------------