Collection:是一个用于存储特定数据结构对象的接口。其下有两个子类实现接口List和Set。
集合可以保存一组数据,功能上比数组强。
集合中存放的是引用,即存放的是地址而不是元素本身。
List:有序集,允许通过下标操作元素,是可重复集
Set:无序集,不可重复集
元素是否重复,取决于元素equals()比较的结果
集合中的toString()格式为:
[元素1.toString(),元素1.toString(),元素1.toString(),...]
int size():用于获取当前集合中的元素数量
boolean isEmpty():用于判断当前集合中是否含有任何元素,不是判断集合是否null。
null表示为分配内存,不存在值,判断的是对象
isEmpty,分配了内存,值存在,只是为空,判断的是值
void clear():用于清空集合元素
boolean add(E e):向集合添加给定引用类型的元素,返回值为true时添加成功,否则添加失败
boolean contains(Object o):用于判断给定元素是否包含在集合中
判断的标准是:看给定元素与集合中某元素equals()的结果是否为true。
boolean remove(Object o):从集合中删除一个给定的元素
remove()方法会使用给定元素和集合中每一个元素顺序equals()比较,删除第一个比较结果为true的元素
boolean addAll(Collection c):将给定集合中的所有元素存入当前集合中,若当前集合因为该方法内容有所改变 则返回true。(即使值添加了一个元素)
boolean containsAll(Collection c):查看当前集合是否包含给定集合的所有元素。(equals()比较)
迭代器(Iterator):用于遍历集合元素。
必须遵循先问后取的原则,删除不是必须的,但若需删除元素,则应:问——>取——>删
其内自带的方法有:
boolean hasNext():判断集合中是否还有元素可以遍历(问)
E next():返回迭代的下一个元素(取)
void remove():删除迭代器中当前取出的元素
在迭代过程中不能通过集合的remove()方法删除元素,只能通过迭代器自带的remove()删除刚刚取出来的元素,并且只有在下一次next()调用后才能再次调用remove()。
package com.blogs.yuan;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* 这个类是用来演示集合(Collection)的
* @author a
*
*/
public class CollectionDemo {
public static void main(String[] args) {
Collection c = new ArrayList(); //创建有序集合对象
c.add("a"); //向集合c中添加a元素
c.add("b");
c.add("c");
System.out.println(c); //[a, b, c]
Collection c1 = new ArrayList();
c1.add("d");
c1.add("e");
c1.add("f");
c1.add("a");
System.out.println(c1); //[d, e, f, a]
int number = c.size(); //获取c集合中元素的个数
System.out.println(number); //3
System.out.println(c.contains("a"));//true,判断c集合中是否含有a元素
System.out.println(c.containsAll(c1));//false,判断c集合中是否含有c1中的所有元素
c.addAll(c1); //将c1中所有元素追加到c2集合中
System.out.println(c); //[a, b, c, d, e, f, a]
System.out.println(c.remove("a")); //true,判断是否删除了c集合中的“a”元素
System.out.println(c); //[b, c, d, e, f, a],只删除了第一个a
c1.clear(); //清空c1中的所有元素
System.out.println(c1); //[]
Iterator iterator = c.iterator(); //获取迭代器
while(iterator.hasNext()){ //问
Object o = iterator.next(); //取
String string = (String)o;
if ("e".equals(string)) {
iterator.remove(); //删除c集合中的e元素
}
System.out.print(string+" "); //b c d e f a
}
System.out.println();
System.out.print(c); //[b, c, d, f, a]
}
}