java中的集合(Collection)

来源:互联网 发布:google drive mac 编辑:程序博客网 时间:2024/06/11 11:42

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); //3System.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],只删除了第一个ac1.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]}}


0 0