Java中的集合类Collection类

来源:互联网 发布:第一版主网最新域名 编辑:程序博客网 时间:2024/05/27 00:30

2.集合类(熟悉)

2.1.数组和集合的区别(理解,笔试题  容器)

(1)数组的特点:

a.数组本质上就是一段连续的内存空间,可以记录多个类型相同的数据;

b.数组支持下标访问,可以实现随机访问;

c.数组一旦定义则内存空间的大小固定,无法增大或变小;

d.插入和删除元素时,可能会移动大量的元素,因此效率比较低;

e.数组的元素类型可以是基本数据类型,也可以是引用数据类型;


(2)集合的特点

a.集合的内存空间可连续可不连续,数据类型可相同可不相同;

b.集合部分支持部分不支持下标访问;

c.集合的内存空间不会固定,随时可以动态调整;

d.集合中增删元素可以不移动大量元素;

e.集合中的元素类型必须是引用数据类型;(八种包装类处理八种基本数据类型)


2.2 基本概念:

集合类主要指用于描述集合的相关类和接口,顶层集合分别是:Collection接口和Map接口

其中java.util.Collection集合操作元素的基本单位是:单个元素;(一个元素一个元素的放)

其中java.util.Map集合操作元素的基本单位是:单对元素;(一对一对的元素放)


在以后的开发中Collection接口本身很少使用,更多的使用该接口的子接口:List接口、Queue接口以及Set接口。


2.3 Collection集合的常用方法(练熟、记住)

boolean add(E e)— 用于将参数指定的元素e放入当前集合,成功返回true,否则false;

boolean addAll(Collection<?extends E> c)

— 用于将参数指定的集合 c 中所有的元素放入当前集合中


boolean contains(Object o)— 用于判断当前集合中是否包含参数指定的对象o;

boolean containsAll(contains<?> o)— 用于判断是否包含参数指定集合的所有元素;


boolean remove(Object o) — 用于才能够当前集合中删除参数指定的单个元素;

boolean removeAll(Collection<?> c)— 用于从当前集合中删除参数指定的所有元素;

void clear() — 用于删除当前集合的所有元素;


boolean isEmpty()— 用于判断当前集合是否为空,空返回true;

int size() — 用于获取集合中元素的个数;

boolean retainAll(Collection<?> c)

— 用于计算当前集合与参数集合的交集,并放入当前集合中;

— 当前集合中的元素发生改变则返回true,否则返回false;


package xdl.day14;import java.util.*;public class TestCollection {public static void main(String[] args) {// Collection c1 = new Collection(); 接口不能实例化对象// 接口类型的引用指向实现类的对象,形成了多态Collection<Object> c1 = new ArrayList<Object>();// 在编译阶段应该调用Collection自己的toString(),在运行阶段调用ArrayList()的toString()// toString()方法的打印格式为:[元素1, 元素2, 。。。。。]System.out.println("c1 = " + c1); // 自动调用toString方法System.out.println("——————————————————————————————————————————");// 实现向集合c1中增加单个元素boolean b1 = c1.add(new Integer(1));System.out.println("b1 = " + b1);// trueSystem.out.println("c1 = " + c1);// c1 = [1]b1 = c1.add(new String("two"));System.out.println("b1 = " + b1);// trueSystem.out.println("c1 = " + c1);// c1 = [1,two]// 需要一个student.javab1 = c1.add(new Student(1001, "student", 30));System.out.println("b1 = " + b1);// true// 打印集合的本质就是打印集合中的每个元素// 打印每个元素的本质就是调用每个元素自己的toString()方法System.out.println("c1 = " + c1);System.out.println("——————————————————————————————————————————");// 实现向集合中添加另外一个集合的所有元素// 准备另外一个集合@SuppressWarnings("rawtypes")Collection<Comparable> c2 = new ArrayList<Comparable>();c2.add(new Integer(3));c2.add(new String("four"));b1 = c1.addAll(c2);// b1 = c1.add(c2);System.out.println("c1 = " + c1);Collection<Object> c4 = new ArrayList<Object>(c1);System.out.println("——————————————————————————————————————————");// 判断当前集合中是否包含参数指定的单个元素// ( o == null ? e == null : o.equals(e) )// 当contains()方法的形参为空时,只需要判断当前集合中是否有元素为空即可// 当contains()方法的形参不为空时,就需要参数对象调用equals()方法与集合元素比较// 因为在student中没有重写equals方法,所以调用的是object中的equals方法,判断的是地址是否相等b1 = c1.contains(new Integer(2));System.out.println(b1);b1 = c1.contains(new String("two"));System.out.println(b1);b1 = c1.contains(new Student(1001, "zhangfei", 30));System.out.println(b1);// 判断当前集合中是否包含参数指定的所有元素b1 = c1.containsAll(c2);System.out.println(b1);// true// 因为在上面c2已经被拆分成3,four两个元素,而不再是[3,four]的形式,所以使用contains整体做判断的时候返回falseb1 = c1.contains(c2);System.out.println(b1);System.out.println("——————————————————————————————————————————");System.out.println("原装c1 = " + c1);Collection<Object> c3 = new ArrayList<Object>(c1);// 实现单个元素的删除b1 = c1.remove(new Integer(1));System.out.println("b1 = " + b1);System.out.println("c1 = " + c1);b1 = c1.remove(new String("two"));System.out.println("b1 = " + b1);System.out.println("c1 = " + c1);b1 = c1.remove(new Student(1001, "zhangfei", 30));System.out.println("b1 = " + b1);System.out.println("c1 = " + c1);// 实现集合中多个元素的删除操作c1 = c3;b1 = c1.removeAll(c2);System.out.println("b1 = " + b1);System.out.println("c1 = " + c1);// 实现集合中元素的清空c1.clear();System.out.println("c1 = " + c1);System.out.println("——————————————————————————————————————————");c1 = c4;System.out.println(c1);// 判断集合是否为空以及返回元素个数System.out.println(c1.isEmpty() ? "什么都没有" : "元素不为空");System.out.println("元素的个数是:" + c1.size());// 计算两个集合的交集并返回结果b1 = c1.retainAll(c2);System.out.println("b1=" + b1);System.out.println("c1=" + c1);}}


原创粉丝点击