java集合学习之Collection(1)

java集合类主要由两个接口派生出来:Collection和Map,,者两个类是java集合框架的根本接口,其余的集合都是这两个集合的子类,这篇博客主要讲Collection接口及其体系中包含的set,list,queue 等集合。下面依次就这些内容进行讲解。

一.Collection 1.Collection是set,list,queue接口的父接口,Collection中定义的方法对set,list,queue也是适用的。下面的代码示范了Collection的基本操作,从下面的代码中可以看到,集合的操作有针对当个元素和一个集合的,这两种操作的函数名很是类似,只是对于操作对象是集合的,函数名一般加一个All。

package lkl;import java.util.ArrayList;import java.util.Collection;import java.util.HashSet;public class CollectionTest {(String[] args){Collection c = new ArrayList();Collection d= new HashSet();///add()方法可以向集合中添加一个元素///addAll()方法可以添加一个集合c.add(“lkl”);d.add(“test”);d.add(“java”);c.addAll(d);///isEmpty()方法用来测试集合是否为空System.out.println(“集合是否为空?”+c.isEmpty());///remove()可以将一个元素从集合中移除/// removeAll可以将某个集合的全部元素从当前集合移除c.remove(“lkl”);c.remove(d);System.out.println(“集合是否为空?”+c.isEmpty());c.add(“lkl”);c.add(d);///contains()方法可以用来判断集合是否包含某个元素///containsAll可以用来判断集合是否包含另一个集合中所有的元素System.out.println(“集合c是否包含“lkl”?”+c.contains(“lkl”));System.out.println(“集合c是否d中的所有元素?”+c.containsAll(d));///retainAll()方法求当前集合和传入集合的交集c.retainAll(d);System.out.println(c);c.add(“lkl”);///size()方法返回集合中元素的个数System.out.println(“集合c中的元素个数为:”+c.size());/* ///toArray将集合转换成一个数组,集合元素成为数组元素String[] str =(String[])c.toArray();*////clear()将集合清空c.clear();System.out.println(“集合是否为空?”+c.isEmpty());}}

2.Collection集合的遍历 我们一般使用Iterator来遍历集合。Iterator也是java集合框架的成员,其主要用于遍历Collection集合;它提供了以下三个方法: bool hasNext():如果集合的元素还没被遍历玩,则返回true Object next(): 返回集合中的下一个元素 void remove(): 删除集合里上次next()方法返回的元素 有三个需要注意的地方: 1.从集合中返回的元素是Object类型的,所以我们需要手动进行类型转换。 2.每次返回的是集合中元素的值而不是元素本身,所以我们不能通过改变返回的值而改变集合中元素本身。 3.我们不能在迭代访问时改变集合中元素(但可以调用Iterator的remove方法),否则会引发异常。 下面的代码示范了如何通过迭代器遍历集合中元素:

package lkl;import java.util.Collection;import java.util.HashSet;import java.util.Iterator;public class IteratorTest {(String[] args){Collection c =new HashSet();c.add(“java”);c.add(“c”);c.add(“c++”);c.add(“shell”);///声明一个Collection的迭代器Iterator it = c.iterator();while(it.hasNext()){///从集合中取出的元素都是Object类型的,需要进行类型转换String str = (String) it.next();if(str==”shell”){///我们可以通过调用iterator的remove方法来删除///上次迭代返回的元素,但是不能通过别的方法来改变集合中的元素it.remove();///下面这句代码会引发异常///c.add(“python”);}str=”lkl”; ///我们不能通过改变迭代器的返回值而改变集合中的元素}System.out.println(c);}}

java5后还可以通过foreach循环来迭代访问集合中的元素(就和访问数组中元素一样),使用foreach方法访问时注意事项同上面的Iterator方法,下面的代码示范了这种方法:

package lkl;import java.util.ArrayList;import java.util.Collection;{(String[] args){Collection c =new ArrayList();c.add(“java”);c.add(“c”);c.add(“c++”);c.add(“shell”);for(Object cc : c){String str = (String) cc;System.out.println(str);}}}

而其实你还爱着他,你一点也不好。

java集合学习之Collection(1)

相关文章:

你感兴趣的文章:

标签云: