Java集合框架和泛型

目录

一,集合框架

二,集合框架中的方法

List接口的常用方法

 LinkedList的特殊方法

 ArrayList与LinkedList对比

 Set接口

 Map接口

Map接口的常用方法

三,集合接口中部分方法展示

四,遍历集合的方式

1)迭代器遍历

2)增强for循环遍历

3)普通for循环

4)lambda表达式遍历

五,泛型


 

一,集合框架

 Collection接口存储一组不唯一,无序的对象

 List 接口继承Collection接口,存储一组不唯一,有序

Set 接口存储一组唯一,无序的对象  

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。

LinkedList采用链表存储方式。插入、删除元素时效率比较高 

二,集合框架中的方法

List接口的常用方法

 LinkedList的特殊方法

 ArrayListLinkedList对比

 Set接口

 Map接口

 Map接口存储一组键值对象,提供keyvalue的映射

Map接口常用的实现类HashMap

HashMap类的特点

不保证映射的顺序,特别是不保证顺序恒久不变

数据添加到HashMap集合后,所有数据的数据类型将转换为Object类型,所以从其中获取数据

需要进行强制类型转换。

Map接口的常用方法

三,集合接口中部分方法展示

  public static void main(String[] args) {
    /*    //创建Collection接口的实现类的对象
        Collection coll = new ArrayList();

        // 1 ,add(Object e)方法:将元素e添加到集合coll中
        coll.add("AA");
        coll.add("BB");
        coll.add(123);
        coll.add(new Person());

        // 2, size()方法:获取添加元素的个数
        System.out.println(coll.size());

       //在创建一个集合coll1
        Collection coll1 = new ArrayList();
        coll1.add(456);
        coll1.add("cc");

        // 3, addAll(Collection coll1)方法:将coll1集合中的元素添加到当前集合中
        coll.addAll(coll1);

        System.out.println(coll.size());
        //遍历一下coll集合
        System.out.println(coll);

        //4, clear()方法: 清空集合元素
        coll.clear();
        System.out.println(coll);

        //5,isEmpty()方法:判断当前集合是否为空
        System.out.println(coll.isEmpty());*/

        System.out.println("*****************************************************************");

      /*  Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);
        // 6, contains(Object obj)方法:判断当前集合中是否包含obj
        boolean contains = coll.contains(123);
        System.out.println(contains);//ture
        System.out.println(coll.contains(new String("Tom")));//ture
        System.out.println(coll.contains(new Person("Jerry",20)));//false ,   person中必须重写equ方法才可以输出ture

        //7,  containsAll(Collection coll1):判断形参coll1中所有元素是否都存在于当前集合中
      // collection coll1 =  Arrays.asList(123,456);
        System.out.println(coll.containsAll(Arrays.asList(123,4567)));

        //8, remove(Object obj):从当前集合中移除obj元素
        coll.remove(123);
        System.out.println(coll);

        //9, removeAll(collection coll1):差集:从当前集合中移除coll1中所有元素
        Collection coll1 = Arrays.asList(123,456);
        coll.removeAll(coll1);
        System.out.println(coll);
        System.out.println("**********************************************************");

        //10, retainAll(Collection coll1):交集:获取当前集合和coll1集合的交集,并返回
        Collection coll2 = Arrays.asList(456,false);
        System.out.println(coll);*/


     /*   Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        //11, hashCode() :返回当前对象的哈希值
        System.out.println(coll.hashCode());

        //12, toArray() 集合转换为数组
        Object[]arr = coll.toArray();
        for (int i = 0;i < arr.length;i++){
            System.out.println(arr[i]);
        }

        //13, 数组转换为集合:调用Arrays类的静态方法asList()
        List<String>list = Arrays.asList(new String[]{"AA","BB","CC"});
        System.out.println(list);

        //14, 遍历集合
        //(1)普通for循环
        Iterator iterator = coll.iterator();//迭代器
        for (int i = 0;i < coll.size();i++){
            System.out.println(iterator.next());
        }

        //(2)增强for循环:for(集合元素的类型  局部变量 : 集合对象)
        //内部仍然用了迭代器
        for (Object obj : coll){
            System.out.println(obj);
        }*/

        //(3)迭代器遍历

        Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        Iterator iterator = coll.iterator();//迭代器
        while (iterator.hasNext()){
            Object obj = iterator.next();
            if ("Tom".equals(obj)){
                iterator.remove();
            }
        }

        //遍历删除后的集合
        iterator = coll.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }


       

四,遍历集合的方式

1)迭代器遍历

Iterator iterator = coll.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

2)增强for循环遍历

增强for循环:for(集合元素的类型  局部变量 : 集合对象)
        //内部仍然用了迭代器
        for (Object obj : coll){
            System.out.println(obj);

3)普通for循环

普通for循环
        Iterator iterator = coll.iterator();//迭代器
        for (int i = 0;i < coll.size();i++){
            System.out.println(iterator.next());

4)lambda表达式遍历

//遍历List
        List<String> list = new ArrayList<>(Arrays.asList("aa", "bb", "cc"));
        list.forEach(n -> System.out.println(n));
 //遍历Map
        Map<String, String> map = new HashMap<String, String>() {{
            put("key1", "value1");
            put("key2", "value2");
            put("key3", "value3");
        }};
        map.forEach((k,v)->System.out.println("Key:" + k + "-----Value:" + v));

五,泛型

泛型的本质是参数化类型:将所操作的数据类型指定为一个参数,使代码可以应用于多种类型。

泛型的定义:将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和

定性。

泛型的优点

所有强制转换都是自动和隐式进行的,安全简单。

提高了代码的重用率

格式:

 Map<String, String> stu = new HashMap<>();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值