容器-List、Set、Map的基本使用

容器-List、Set、Map的基本使用

Collection接口:是List、Set接口的父类;

List接口中的元素特点:有序、可重复

Set接口中的元素特点:无序、不可重复

List接口中常用方法

 /**
         * List中的基本方法
         */
        List<String> list=new ArrayList<>();
        List<String> list2=new LinkedList<>();
        List<String> list3=new LinkedList<>();
        list.add("hello01");  //向List容器中添加元素hello01
        list.add("hello02");  //向List容器中添加元素hello02
        list.add("hello03");
        list.add(1,"hello03");  //插入到下标为1的位置
        list.get(1);  //获取下标为1位置的内容
        list.indexOf("hello01");  //获取字符串"hello01"在容器中出现的位置,只输出第一次出现出现位置的下标,如果该位置之后还有出现过,不会输出其位置下标
        list.remove(0);  //删除指定下标的元素
        list.remove("hello02"); //删除指定内容
        list.contains("hello01");  //遍历list中是否含有字符串"hello01"
        list.clear();     //清空容器中所有元素
        list.size();    //计算容器中含有几条数据
        list.isEmpty();  //判断容器是否为空
        list2.add("hello01");  //向list2容器中添加元素hello01
        list2.add("hello02");  //向list2容器中添加元素hello02
        list2.add("hello03");
        list3.add("hello01");  //向list3容器中添加元素hello01
        list3.add("hello02");  //向list3容器中添加元素hello02
        list3.add("hello03");
        System.out.println(list2.equals(list3));  //判断两个容器是否相等,显然在容器中重写了equals方法,即比较两个容器中内容是否相等
        System.out.println(list2.toString());  //与直接输出list02结果一致,即list2中重写了toString()方法,即使没有写但还是默认调用了toString方法

List中的单向迭代器遍历与双迭代器遍历

 //利用单向迭代器遍历
        Iterator<String> it=list2.iterator();//调用迭代器中的方法,以便之后利用迭代器遍历输出容器中的内容
        //系统运行某位置时判断下一个位置是否存在元素
        while (it.hasNext()){   //--->->--->-->---
            String s2=it.next(); //得到每个位置得元素
            System.out.println(s2);
        }

//利用双向迭代器遍历
        ListIterator<String> lt1=list2.listIterator();
        while (lt1.hasPrevious()){  //-<---<--<-
            System.out.println(lt1.previous());
        }

Set接口中常用方法

 /**
         * Set中的基本方法
         */
        Set<String> set=new HashSet<>();
        set.add("hello1");//向容器中存储数据
        set.add("hello2");
        set.add("hello3");
        set.add("hello4");
        set.size();  //计算容器中有几条数据
        set.isEmpty();  //判断容器是否为空
        set.contains("hello4");  //判断容器中是否含有"hello04"字符串
        set.remove("hello4");  //删除容器中内容为hello4的数据,由于Set容器中数据是无序的所以,在Set容器中没有删除指定下标的方法

        //利用单向迭代器遍历
        Iterator<String> it=set.iterator();//调用迭代器中的方法,以便之后利用迭代器遍历输出容器中的内容
        //系统运行某位置时判断下一个位置是否存在元素
        while (it.hasNext()){   //--->->--->-->---
            String s2=it.next(); //得到每个位置得元素
            System.out.println(s2);
        }
        set.clear();  //清楚容器中所有得元素

Map接口中的常用方法

 /**
         * Map容器中基本方法的使用
         */
        Map<Integer,String> map=new HashMap<>();
        map.clear();   //清除map容器中所有的内容
        map.remove(1); //删除指定key为几的元素
        map.remove(1,"hello");//删除指定key值指定value的元素,必须从容器中找到与给的实参一样的才能删除成功,否则删除失败
        map.put(1,"hello1");   //向map容器中添加元素,使用put()方法
        map.put(2,"hello2");
        map.put(3,"hello3");  //Map中key唯一化,但是value值不唯一
        map.put(4,"hello4");
        System.out.println(map.get(1));  //获取key=1的value值
        Collection<String> values = map.values();//获取map容器中所有value的集合
        System.out.println(map.containsKey(1));  //判断容器中是否存在key=1,存在则返回true,否则否则返回false
        map.size();  //获取map容器中含有几条数据,,例如以上就会输出4条数据

Map中遍历方式

foreach遍历

 /**
         * Map容器中的遍历方式----增强for循环(foreach)
         */
        //首先获得map容器中所有的key值,即使用keySet()方法
        Set<Integer> set=map.keySet();  //获取map中所有的key
        for(Integer it2:set){
            int i1=it2;  //自动发生拆箱事件
            //然后将获得的key值查询到其对应的value值,即使用get()方法
            System.out.println(it2+" ------- "+map.get(i1));  //将map容器中的内容遍历出来
        }

迭代器方式(Iterator)

/**
         * Map容器中的遍历方式----迭代器方式(Iterator)
         */
        //首先获取map容器中的key集合,将key放入迭代器中进行遍历,进而取出不同的key所对应的值
        Iterator<Integer> iter1=set.iterator();  //将key值放入到迭代器中
        while(iter1.hasNext()){  //判断该位置的下一位置是否存在元素
            int i2=iter1.next();  //获取遍历的元素
            System.out.println(map.get(i2)); //将遍历的key值作为实参遍历出其value值
        }

Entry方式(entrySet)

 /**
         * Map容器中的遍历方式----Entry方式(entrySet)
         */
       Set<Entry<Integer,String>> entries=map.entrySet();
        /**
         * Entry方式中的增强for循环
         */
        //利用Entry接口中的getValue()方法获得value值
        //利用Enntry接口中的getKey()方法获得key值
        for (Entry<Integer,String> m2:entries){
            System.out.println( m2.getKey()+"-----"+ m2.getValue());
        }
        /**
         * Entry方式中的迭代器遍历
         */
        Iterator<Entry<Integer,String>> it3=entries.iterator();
        while(it3.hasNext()){
            System.out.println(it3.next().getKey()+"------"+it3.next().getValue());
        }

Collection遍历所有的

/**
         * 遍历所有Collection
         */
        //这种方式仅仅是将map容器中的value值存储在Collection容器中
        Collection<String> cll=map.values();
        /**
         * 遍历所有Collection---增强for循环
         */
        for (String s3:cll){
            System.out.println(s3);
        }
        /**
         * 遍历所有Collection---迭代器
         */
        Iterator<String> it4=cll.iterator();
        while (it4.hasNext()){
            System.out.println(it4.next());
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值