一、Java集合类
1、Java中集合类的关系图
2、集合类的作用
- Java集合类是为了方便对多个对象的操作(面向对象)
3、数组和集合类同是容器,有何不同?
- 数组:数组中存储基本数据类型,长度固定,可以存储基本数据类型(int),可以存储引用数据类型(Integer)
- 集合类:集合只能存储对象,长度是可变的,只能存储引用类型(Integer)
4、集合类的特点
- 集合只能存储对象
- 集合的长度是可变的
- 集合可以存储不同类型的对象
二、Collection接口
1、Collection接口概述
- Collection :收藏
- Collection 层次结构中的根接口
- Collection 表示一组对象,这些对象也称为 collection 的元素
- Collection 是集合的顶层接口,它的子体系有重复的,有唯一的,有有序的,有无序的
2、Collection 接口成员方法
boolean add(E e)
//添加一个元素boolean remove(Object o)
void clear()
//移除所有元素boolean contains(Object o)
//判断集合中是否包含指定元素boolean isEmpty()
package shouji; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo { public static void main(String[] args){ //Collection c = new Collection();//错误的,接口不能实例化 Collection c = new ArrayList(); System.out.println(c.add("hello")); c.add("world");//添加 c.add("java"); System.out.println(c); c.clear();//清空 System.out.println(c); System.out.println("-------------------------"); c.add("苍井空");//添加 c.add("波多野结衣"); System.out.println(c); System.out.println(c.remove("苍井空"));//移除一个元素 System.out.println(c); System.out.println("++++++++++++++++++++++++++++++"); System.out.println(c.contains("苍井空"));//判断集合中是否包含苍井空 System.out.println(c.contains("波多野结衣"));//判断集合中是否包含波多野结衣 System.out.println(c.isEmpty());//判断集合是否为空 System.out.println(c.size());//判断元素的个数 } }
int size()
boolean addAll(Collection c)
boolean removeAll(Collection c)
boolean containsAll(Collection c)
boolean retainAll(Collection c)
package shouji; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo { public static void main(String[] args){ Collection c1 = new ArrayList();//创建集合c1 c1.add("苍井空"); c1.add("波多野结衣"); c1.add("小泽玛利亚"); c1.add("泷泽萝拉"); Collection c2 = new ArrayList();//创建集合 c2 c2.add("17岁"); c2.add("18岁"); c2.add("19岁"); c2.add("20岁"); c2.add("21岁"); c2.add("22岁"); c2.add("23岁"); c2.add("24岁"); System.out.println(c1.addAll(c2)); System.out.println(c1); System.out.println(c2); System.out.println("-----------------------"); System.out.println(c1.removeAll(c2)); System.out.println(c1); System.out.println(c2); System.out.println("==========================="); System.out.println(c1.containsAll(c2));//c1集合是否包含c2 } }
Object[] toArray()
//把集合转成数组,可以实现集合的遍历
package shouji; import java.util.ArrayList; import java.util.Collection; public class CollectionDemo { public static void main(String[] args){ Collection c1 = new ArrayList();//创建集合c1 c1.add("苍井空"); c1.add("波多野结衣"); c1.add("小泽玛利亚"); c1.add("泷泽萝拉"); Object[] obj = c1.toArray(); for (int i = 0; i < obj.length; i++){ String s = (String) obj[i]; System.out.println(s); } } }
Iterator iterator()
//迭代器,集合的专用遍历方式
新建两个 Java 文件
package shouji; public class Student { private String name; private int age; public Student(){ super(); } public Student(String name, int age){ super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package shouji;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo {
public static void main(String[] args){
Collection c1 = new ArrayList();//创建集合c1
Student s1 = new Student("苍井空",17);
Student s2 = new Student("小泽玛利亚",18);
Student s3 = new Student("波多野结衣",19);
Student s4 = new Student("泷泽萝拉",20);
Student s5 = new Student("水菜丽",21);
Student s6 = new Student("刘诗诗",22);
Student s7 = new Student("范冰冰",23);
c1.add(s1);//把人添加到集合里
c1.add(s2);
c1.add(s3);
c1.add(s4);
c1.add(s5);
c1.add(s6);
c1.add(s7);
Iterator it = c1.iterator();//迭代器,集合的专用遍历方式
while (it.hasNext()){
Student s = (Student) it.next();
System.out.println("姓名:"+s.getName()+"\t 年龄:"+s.getAge());
}
}
}