• JAVA 容器


    直接看一张图,理解图中的结构其实容器大概就可以理解了

    这里就将三个常见的容器接口类:Set List Map

    重点:多态的实现,父类的指针指向子类的对象

    Set

    Set是Collection的子接口,实现Set接口的容器类的特点:无序,不重复

    实现Set接口的类有:HashSet类

    代码如下:

    package com.zpchcbd.comtainer;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class MyHashSet {
        public static void main(String[] args){
            Set s1 = new HashSet();s1.add("1");s1.add("2");s1.add("3");s1.add("a");
            Set s2 = new HashSet();s2.add("a");s2.add("b");s2.add("c");
    
            s1.retainAll(s2); //取交集
            System.out.println(s1);
    
            Set s3 = new HashSet(s2); //构造方法可以进行将其他容器的元素放进来
            System.out.println(s3);
        }
    }
    

    结果如图:

    List

    List是Collection的子接口,实现List接口的容器类的特点:有序,可重复

    实现Set接口的类有:ArrayList LinkedList类

    package com.zpchcbd.comtainer;
    
    import java.util.Collections;
    import java.util.LinkedList;
    import java.util.List;
    
    public class MyLinkedList {
        public static void main(String[] args) {
            List l1 = new LinkedList<>();
            for(int i=0;i<5;i++){
                l1.add("a" + i);
            }
    
            System.out.println(l1);
            Collections.reverse(l1);
            System.out.println(l1);
            Collections.shuffle(l1);
            System.out.println(l1);
            Collections.sort(l1);
            System.out.println(l1);
        }
    }
    

    Map

    Map是Collection的子接口,实现Map接口的容器类的特点:键值对存储,存储键值对的时候,主键不能重复,若重复后面键的值替换前面的键的值

    实现Set接口的类有:HashMap TreeMap类

    package com.zpchcbd.comtainer;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class MyHashMap {
        public static void main(String[] args){
            Map m = new HashMap<>();
            m.put("aaa","111");
            m.put("bbb", new Integer(222));
            m.put("ccc","333");
    
            int i = (Integer) m.get("bbb");
            System.out.println(i);
    
            System.out.println(m);
        }
    }
    

    Iterator迭代器

    在Collection接口中有个需要被实现的方法是Iterator<E> iterator();,该方法会返回一个iterator迭代器,通过这个迭代器可以实现遍历当前容器中的所有元素

    1、需要注意的就是在遍历迭代器的过程中,无法通过容器的方法remove来进行移除指定元素

    public class MyIterator2 {
        public static void main(String[] args) {
            Collection cHashSet = new HashSet();
            cHashSet.add(new Name("1111","aaaa"));
            cHashSet.add(new Name("2222","bbbb"));
            cHashSet.add(new Name("33","cc"));
    
            Iterator iterator;
            for(iterator = cHashSet.iterator();iterator.hasNext();){
                Name name = (Name)iterator.next();
                if(name.getFirstname().length() < 3){
                    iterator.remove();
                }
            }
            System.out.println(cHashSet);
        }
    }
    

  • 相关阅读:
    图标字体IcoMoon 使用
    JS 寻找孩子并打印路径
    为什么要用on()而不直接使用click
    setTimeout 虚假的“异步”
    解决Ajax.BeginForm还是刷新页面的问题
    .net生成Excel,并下载
    C#判断文件是否正在被使用
    sql为数字添加千分位(也就是钱的格式)
    HotelIInventory项目小结
    一步一步实现FormsAuthentic验证登录
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/13510011.html
Copyright © 2020-2023  润新知