java集合类是一种工具类。
集合与数组的区别:
数组元素的值可以是基本内型的值也可以是对象的引用变量
集合元素的值是对象的引用变量
java集合可以大致分为三大类:
set集合,无序,由于无序从而导致不能重复,根据元素自身来访问;
list集合:类似数组,但是长度可以改变,根据元素索引来访问;
map集合:每项数据由俩个值组成——key-value,由key来访问;
Queue:队列集合实现;
常用操作集合元素方法:(参见API)
boolean add(Object o):向集合中添加元素,如果添加成功,返回true;
boolean remove(Object o):删除集合中元素o,如果成功,返回true;
Iterator iterator():返回一个iterator对象,用来遍历集合元素;
........................
集合元素遍历:
iterator遍历:Iterator没有保存对象的能力,如果需要创建iterator对象,则必须有一个被迭代的集合
使用iterator访问Collection集合元素时,Collection集合中的元素不能被改变,只有通过Iterator的remove方法删除上一次的next方法返回的集合元素才可以,否则抛出异常
由下例可知,Iterator并不是把集合元素本身传递给了迭代变量,而是把值传递给了迭代变量
public class DemoTest1
{
public static void main(String args)
{
//创建一个集合
Collection Students = new HashSet();
//添加集合元素
Students.add("王二");
Students.add("张三");
Students.add("l李四");
//获取name对应的迭代器
Iterator it=Students.tterator();
//boolean hasNext()方法,如果被迭代的集合元素没有被遍历,返回true;返回的数据内型是object内型
while(it.hasNext())
{
//强制类型转换
String student=(String)it.next();
if(student.equals("张三"))
{
//从集合中删除上一次next方法返回的元素
it.remove();
}
student="王五";
}
System.out.println(Students);
}
}
foreach遍历:
foreach循环中的迭代变量是系统依次把集合元素的值付给迭代变量
public class Demo2
{
public static void main(String args)
{
//创建一个集合
Collection Students = new HashSet();
Students.add(new String("王二"));
Students.add(new String("张三"));
Students.add(new String("李四"));
for(Object obj :Students)
{
//student集合元素的迭代变量
String student=(String)obj;
if( student .equals("李四"))
{
//引发异常------使用iterator迭代过程中,不可以修改集合元素
Students.remove(student);
}
}
System.out.println(Students);
}
}