java学习笔记——集合框架(一)

数组和集合都是对多个数据进行存储的,也叫java容器

一、数组和集合框架的区别

  • 1.数组只能存储相同类型的数据 int[] arr=new int[10];表示arr只能保存整数,而集合可以存储不同类型的数据
  • 2.数组可以保存基本数据类型的数据,也可以保存引用数据类型的数据,而集合框架只能保存对象(集合框架里面的数据都是对象)
  • 3.数组的弊端: 数组的长度一旦定义,是不可改变的,例:Student[] stu=new Student[10[];这个数组只能保存10个学生信息,而集合可以存储数据量不确定的数据

二、集合框架的分支(重点学习List和Map)
在这里插入图片描述

  • Collection接口(单列接口,存储一个个对象)下有两个子接口:List和Set
    (1) List接口:存储有序的,可以重复的数据 (动态数组)
           List的实现类:ArrayList(主要实现类)、LinkedList、Vertor)
    (2) Set接口:存储无序的,不可重复的
             Set的实现类:HashSet(主要实现类)、LinkHashSet、TreeSet
  • Map接口:多列集合,用来存储一对(key-value)一对的数据(key不可重复,value可以)
    实现类:HashMap、LinkHashMap、TreeMap、Hashtable、Properties

三、Collection接口的常用方法

  1. size():返回集合中元素的个数(集合的长度)
		// 创建一个集合
        Collection coll = new ArrayList();
        // 1 size():返回集合中元素的个数(集合的长度)掌握
        System.out.println(coll.size());
  1. add(Object o):添加元素
coll.add(1);// 1不是int类型,是int的包装类,集合保存的都是对象
  1. addAll(Collection c):把集合c里面所有的元素添加到当前集合中
Collection c = new ArrayList();
c.add("abc");
c.add("abc");
coll.addAll(c);
  1. isEmpty():判断当前集合是否为空,如果为空就为true
System.out.println(coll.isEmpty());// false
  1. clear():清空集合中的元素
coll.clear();
System.out.println(coll.isEmpty());
  1. contains(Object o):判断当前集合中是否包含指定元素o,判断的时候会调用o对象所在类的equals()
boolean b1 = coll.contains(123);
System.out.println(b1);// true
  1. containsAll(Collection c):判断集合c中所有元素是否都在当前集合中
  2. remove(Object o):删除集合中的元素o
boolean b4 = coll.remove(123);
System.out.println(b4);// true
  1. removeAll(Collection c):从当前集合中删除另一个集合c中所有的元素
        Collection c = new ArrayList();
        c.add("aaa");
        c.add("abc");
        System.out.println(coll.removeAll(c));// true 如果有一个符合条件就删除成功       
  1. toArray():将集合转成一个数组
  		Object[] objs = c.toArray();
        for(Object o:objs){
            System.out.println(o);
        }
  1. equals():判断两个集合的元素值是否相等
  2. hashCode():返回当前对象的哈希值

四、遍历集合的三种方法

  1. 迭代器 Iterator
		Collection coll = new ArrayList();
        coll.add(1);// 这不是int类型,是int的包装类,集合保存的都是对象
        coll.add("思雨");
        coll.add(10.1);
        coll.add(new Date());
        coll.add("abc");
        coll.add("abc");

        Iterator i = coll.iterator();// 返回一个iterator接口
        // 第一种方式 几乎不用
        System.out.println(i.next());
        System.out.println(i.next());
        System.out.println(i.next());
        System.out.println(i.next());
        System.out.println(i.next());
        System.out.println(i.next());
        // hashNext():判断当前集合中是否有下一个元素
        while(i.hasNext()){
            // next():1.指针下移  2.输出下移后当前集合位置元素的值
            System.out.println(i.next());
        }
  1. 增强for循环
 // for(集合元素的类型  局部变量 :集合名)
        for (Object o : coll){
            System.out.println(o);
        }
  1. 把集合转成数组,遍历数组(针对List)
		// 把集合转成数组
        Object[] objects = coll.toArray();
        for(Object o : objects){
            System.out.println(o);
        }
        // 把一个数组转成集合
        List list = Arrays.asList(new String[]{"aaa","bbb"});
        for(Object str : list){
            System.out.println(str);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值