集合类
数组与集合类区别:
- 集合储存的都是对象的地址值
- 数组不仅可以储存基本数据类型,也可以储存对象,但长度是固定的
- 集合类只能储存对象,但长度是可变的
.
集合类的特点:
集合只用于储存对象,集合的长度是可变的,集合可以储存不同类型的对象, 集合就是储存对象最常用的方式之一
集合框架简单图表
Collection 接口中:有所有集合容器的共性方法
- List体系: 元素是有序的,元素可以重复,因为该集合体系有索引
- Set体系: 元素是无序的,元素不可以重复
集合框架-----Collection 接口中的方法(代码演示)
- add方法的参数类型是Obeject.以便于接受任意类型对象
Collection方法代码演示----
import java.util.*; //导入集合类包
public class DEMO {
public static void demo1(){
//创建一个ArrayList 集合容器对象 ..使用顶层Collection 接口的方法
ArrayList al=new ArrayList();
//添加元素
al.add("java1");
al.add("java2");
al.add("java3");
al.add("java4");
sop("原集合:"+al); //打印集合
sop("Size:"+al.size()); //获取集合元素个数.集合长度
al.remove("java1"); //移除此列表中首次出现的指定元素
// al.clear(); 移除集合中所有元素
sop("删除后集合:"+al); //删除后集合元素
sop("是否有java2:"+al.contains("java2")); //判断集合内是否存在某个对象
sop("集合是否为null:"+al.isEmpty());
}
public static void demo2(){
ArrayList al1=new ArrayList();
al1.add("java1");
al1.add("java2");
al1.add("java3");
al1.add("java4");
ArrayList al2=new ArrayList();
al2.add("java1");
al2.add("java2");
al2.add("java5");
al2.add("java6");
al1.retainAll(al2); //al1保留与al2相同的元素.交集
al2.removeAll(al1); //al1去除与al2相同的元素
sop(al1.containsAll(al2)); //判断al1是否包含al2所有元素
// sop(al1.contains("java")); //判断al1是否包含此元素
sop("修改后的al1="+al1);
sop("修改后的al2="+al2);
sop(al1.equals(al2)); //比较集合内容是否相等
}
public static void main(String []args){
demo1();
demo2();
}
public static void sop(Object object){
System.out.println(object);
}
}
什么是迭代器:
迭代器其实就是集合 取出元素的方式(遍历元素)
Colection 迭代器的三种方法:
代码演示-----
import java.util.*; //导入集合类包
public class DEMO {
public static void demo1(){
//创建一个ArrayList 集合容器对象 ..使用顶层Collection 接口的方法
ArrayList al=new ArrayList();
//添加元素
al.add("java1");
al.add("java2");
al.add("java3");
al.add("java4");
Iterator it=al.iterator(); //获取迭代器.用于取出集合中的元素
while (it.hasNext()) { //如果仍有元素可以迭代,则返回 true。
Object obj=it.next();
if (obj.equals("java3")){
it.remove(); //移除元素
}
sop(obj); //返回迭代的下一个元素。
}
}
}