标签:集合
/*
学习这东西就是要坚持,前方一定是光明的,千万不能着急
*/
java 集合
java集合类是工具类的一种,是一个容器,用于存储数量不能的多个对象(只能保存对象,实际上是对象的引用),并实现常用的数据结构。
还可以保存具有映射关系的关联数组。
分为set(无序,不可重复)、list(有序,可重复)、map(具有映射关系)、queue(队列集合)四种体系。
java所有的集合类都保存在java.util包下,主要由Collection和Map两个跟接口派生而出。
Collection接口和Iterator接口
Collection接口派生出:Set、List、Queue;定义了如下操作集合的方法;
//boolean add(object o);用于向集合中添加一个元素,成功返回true //boolean addAll(Collection c)把集合c中的所有元素添加到指定集合中 //int size()确定集合中元素的个数 //Boolean contains(object o)检测集合中是否包含传入的 //boolean containsAll(Collecton c)检测集合中是否包含给定集合c中的所有元素 //boolean isEmpty()如果集合为空返回true,否则FALSE //void clear()清楚集合所有元素,集合长度归零 //boolean remove(object o)删除集合中指定的元素(可以是一个也可以是多个) //boolean removeAll(Collection c)删除集合中给定集合c的所有元素 //boolean retainAll(Collection c)删除集合c里不包含的元素,即取得和集合c的交集 //object toArray()把集合转化成对应数组 //iterator iterator()返回一个iterator对象,用于遍历集合中的元素 import java.util.*; public class testCollection { public static void main(String[] args){ Collection c=new ArrayList(); c.add("Math"); c.add(1990); System.out.println("集合中元素的个数为:"+c.size()); c.remove(1990); System.out.println("集合中元素的个数为:"+c.size()); c.add("History"); System.out.println(c);//输出 [Math, History] Collection books=new HashSet(); books.add("History"); books.add("Math"); System.out.println("c集合中是否完全包含books集合:"+c.containsAll(books)); c.remove("Math"); System.out.println("c集合中是否完全包含books集合:"+c.containsAll(books)); books.retainAll(c); System.out.println("books里的集合元素"+books); c.removeAll(books); System.out.println("c里的集合元素"+c); books.clear(); } }
以上是Collection接口实现的ArrayList和HashSet集合,当使用System.out.println()时的输出格式是[ele1,ele2,ele3]形式,显然Collection接口重写了toString()方法;
使用iterator接口遍历集合(迭代访问),如下三个方法:
//boolean hasNext()如果有下一个就返回true //Object next()返回集合的下一个元素 //void remove()删除集合里上一次next方法返回的元素 import java.util.*; public class testIterator { public static void main(String[] args){ Collection books=new HashSet(); books.add("History"); books.add("Math"); books.add("English"); Iterator it=books.iterator(); while(it.hasNext()){ String book=(String)it.next(); System.out.println(book); if(book.equals("English")){ it.remove(); } } System.out.println(books); } }
Iterator并不是把集合中的元素传递给迭代变量,而是把集合中元素的值传递,所以通过Iterator对集合元素的值进行修改不起作用。
在使用Iterator来迭代Collection集合过程中,不能修改集合元素的值,否则会抛出异常(多线程中容易出这种错误)
另外也可以使用foreach语法遍历集合,同样在遍历过程中也不能修改集合元素
import java.util.*; public class testIterator { public static void main(String[] args){ Collection books=new HashSet(); books.add("History"); books.add("Math"); books.add("English"); for(Object obj : books){ String book=(String)obj; System.out.println(book); } System.out.println(books); } }
标签:集合
原文地址:http://wuqian1.blog.51cto.com/9145890/1546437