集合

来源:互联网 发布:建筑渲染软件 编辑:程序博客网 时间:2024/05/17 22:48
  1. 集合的由来:
    我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢?数组和StringBuffer。但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组。而对象数组又不能适应变化的需求,因为数组的长度是固定的,这个时候,为了适应变化的需求,Java就提供了集合类供我们使用。
  2. 数组和集合的区别?

    A:长度区别

    • 数组的长度固定
    • 集合长度可变

    B:内容不同

    • 数组存储的是同一种类型的元素
    • 而集合可以存储不同类型的元素

    C:元素的数据类型问题

    • 数组可以存储基本数据类型,也可以存储引用数据类型
    • 集合只能存储引用类型
  3. Collection的功能概述:

    A. 添加功能

    • boolean add(Object obj):添加一个元素
    • boolean addAll(Collection c):添加一个集合的元素

    B. 删除功能

    • void clear():移除所有元素
    • boolean remove(Object o):移除一个元素
    • boolean removeAll(Collection c):移除一个集合的元素(是一个还是所有)

    C.判断功能

    • boolean contains(Object o):判断集合中是否包含指定的元素
    • boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有)
    • boolean isEmpty():判断集合是否为空

    D. 获取功能

    • Iterator<E> iterator()(重点)

    E.长度功能

    • int size():元素的个数
    • 面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?

    F. 交集功能

    • boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思呢?

    G.把集合转换为数组

    • Object[] toArray()

几个实例:

public class CollectionDemo {    public static void main(String[] args) {        // 测试不带All的方法        // 创建集合对象        // Collection c = new Collection(); //错误,因为接口不能实例化        Collection c = new ArrayList();        // boolean add(Object obj):添加一个元素        // System.out.println("add:"+c.add("hello"));        c.add("hello");        c.add("world");        c.add("java");        // void clear():移除所有元素        // c.clear();        // boolean remove(Object o):移除一个元素        // System.out.println("remove:" + c.remove("hello"));        // System.out.println("remove:" + c.remove("javaee"));        // boolean contains(Object o):判断集合中是否包含指定的元素        // System.out.println("contains:"+c.contains("hello"));        // System.out.println("contains:"+c.contains("android"));        // boolean isEmpty():判断集合是否为空        // System.out.println("isEmpty:"+c.isEmpty());        //int size():元素的个数        System.out.println("size:"+c.size());        System.out.println("c:" + c);    }}
import java.util.ArrayList;import java.util.Collection;/* * boolean addAll(Collection c):添加一个集合的元素 * boolean removeAll(Collection c):移除一个集合的元素(是一个还是所有) * boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有) * boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思呢? */public class CollectionDemo2 {    public static void main(String[] args) {        // 创建集合1        Collection c1 = new ArrayList();        c1.add("abc1");        c1.add("abc2");        c1.add("abc3");        c1.add("abc4");        // 创建集合2        Collection c2 = new ArrayList();//      c2.add("abc1");//      c2.add("abc2");//      c2.add("abc3");//      c2.add("abc4");        c2.add("abc5");        c2.add("abc6");        c2.add("abc7");        // boolean addAll(Collection c):添加一个集合的元素        // System.out.println("addAll:" + c1.addAll(c2));        //boolean removeAll(Collection c):移除一个集合的元素(是一个还是所有)        //只要有一个元素被移除了,就返回true。        //System.out.println("removeAll:"+c1.removeAll(c2));        //boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有)        //只有包含所有的元素,才叫包含        // System.out.println("containsAll:"+c1.containsAll(c2));        //boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思呢?        //假设有两个集合A,B。        //A对B做交集,最终的结果保存在A中,B不变。        //返回值表示的是A是否发生过改变。        System.out.println("retainAll:"+c1.retainAll(c2));        System.out.println("c1:" + c1);        System.out.println("c2:" + c2);    }}
import java.util.ArrayList;import java.util.Collection;/* * 集合的遍历。其实就是依次获取集合中的每一个元素。 *  * Object[] toArray():把集合转成数组,可以实现集合的遍历 */public class CollectionDemo3 {    public static void main(String[] args) {        // 创建集合对象        Collection c = new ArrayList();        // 添加元素        c.add("hello"); // Object obj = "hello"; 向上转型        c.add("world");        c.add("java");        // 遍历        // Object[] toArray():把集合转成数组,可以实现集合的遍历        Object[] objs = c.toArray();        for (int x = 0; x < objs.length; x++) {            // System.out.println(objs[x]);            // 我知道元素是字符串,我在获取到元素的的同时,还想知道元素的长度。            // System.out.println(objs[x] + "---" + objs[x].length());            // 上面的实现不了,原因是Object中没有length()方法            // 我们要想使用字符串的方法,就必须把元素还原成字符串            // 向下转型            String s = (String) objs[x];            System.out.println(s + "---" + s.length());        }    }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 后牙齿有个大洞怎么办 大牙烂了个洞,痛怎么办 牙黑了有洞怎么办 牙齿内侧掉了一小块怎么办 龋坏的牙齿痛怎么办 2岁半宝宝蛀牙怎么办 3岁宝宝门牙腐蚀怎么办 2岁宝宝门牙有洞怎么办 三岁宝宝有龋齿怎么办 牙龈肿痛脸肿了怎么办 孕妇牙疼的厉害怎么办 智齿引起的牙疼怎么办 蛀牙了有个大洞牙痛怎么办 长了蛀牙牙疼怎么办 面饼表面长黑点怎么办 牙结石自己掉了怎么办 狗狗得了牙结石怎么办 牙结石掉了有洞怎么办 内衣的钩子会掉怎么办? 新胸罩肩带老掉怎么办 牙齿少了一小块怎么办 儿童牙齿有黑斑要怎么办 牙齿又黄又臭怎么办 大牙烂空了很臭怎么办 牙齿已经烂没了怎么办 牙齿已经蛀没了怎么办 牙齿整个蛀掉了怎么办 小孩恒牙长歪了怎么办 孩子换牙长歪了怎么办 9岁门牙磕松动了怎么办 牙齿摔断了一半怎么办 牙齿从根部断了怎么办 牙断了还有牙根怎么办 牙根断在牙龈里怎么办 后槽牙掉了一半怎么办 孩子门牙摔断了怎么办 2岁宝宝牙齿断了怎么办 小孩乳牙摔掉了怎么办 9孩子门牙磕断了怎么办 牙齿断了但没掉怎么办 大人门牙摔断了怎么办