zoukankan      html  css  js  c++  java
  • 集合的用法

    Set

    HashSet

    package collection;
    
    /**
     * @author fkl
     * @date 2021/1/14 10:35
     **/
    public class A implements Cloneable {
        public String name;
    
       /* public String name[];*/
    
            public Object clone() {
                A o = null;
    
                try {
                    o = (A) super.clone();
                } catch (CloneNotSupportedException e) {
                    e.printStackTrace();
                }
    
                return o;
            }
    /*    当Class A成员变量类型是java的基本类型时(外加String类型),只要实现如上简单的clone(称影子clone)就可以。
        但是如果Class A成员变量是数组或复杂类型时,就必须实现深度clone。*/
    /*    public Object clone() {
            A o = null;
            try {
                o = (A) super.clone();
            } catch (CloneNotSupportedException e) {
                e.printStackTrace();
            }
            o.name = new String[2];// 其实也很简单^_^
            return o;
        }*/
    
    }
    

      

    package collection;
    import org.junit.Test;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    /**
     * @author fkl
     * @date 2020/12/30 9:36
     **/
    public class Setss {
        @Test
        public void hashSet() {
    
            Set<String> set = new HashSet<>();
            //将指定的元素添加到此集合
            set.add("s2");
            set.add("s3");
            set.add("s4");
            set.add("s2");
            set.add("s5");
            set.add("s1");
            set.add(null);
            for (String i : set) {
                System.out.println(i);
            }
            System.out.println(set);
          /*  clear()
            从此集合中删除所有元素。*/
           /* clone()
            返回此 HashSet实例的浅层副本:元素本身不被克隆。*/
            //克隆前
            A a1=new A();
            A a2=new A();
            a1.name="a1";
            a2=a1;
            a2.name="a2";
            System.out.println("克隆前a1和a2变成了同一个引用地址");
            System.out.println(a1.hashCode());
            System.out.println(a2.hashCode());
            System.out.println("a1.name="+a1.name);
            System.out.println("a2.name="+a2.name);
            //克隆后
            a1.name = "a1";
             a2 = (A)a1.clone();
            a2.name = "a2";
            System.out.println("克隆后a2值得改变并不会影响a1,因为引用的地址不是同一个");
            System.out.println("克隆后a1:"+a1.hashCode());
            System.out.println("克隆后a1:"+a2.hashCode());
            System.out.println("克隆后a1.name=" + a1.name);
            System.out.println("克隆后a1a2.name=" + a2.name);
            /*contains(Object o)
            如果此集合包含指定的元素,则返回 true 。*/
            /*isEmpty()
            如果此集合不包含元素,则返回 true 。*/
          /*  iterator()
            返回此集合中元素的迭代器。
            (2) 使用next()获得序列中的下一个元素。
           (3) 使用hasNext()检查序列中是否还有元素。
           (4) 使用remove()将迭代器新返回的元素删除。
            */
            for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
                String str = iter.next();
                System.out.println("Iterator:"+str);
            }
            Iterator<String> iter = set.iterator();
            while (iter.hasNext()){
                String str = iter.next();
                System.out.println("Iterator while:"+str);
            }
           /* remove(Object o)
            如果存在,则从该集合中删除指定的元素。*/
           /* size()
            返回此集合中的元素数(其基数)。*/
        }
    }
    

      

    我是代码搬运工!!!
  • 相关阅读:
    如何在帮助页面添加测试工具
    webAPI 自动生成帮助文档
    通过HttpClient来调用Web Api接口
    WebAPI请求
    WebAPI初探
    free-jqGrid
    更新的packages.config所有的软件包?
    winform 防止多開
    一个强大的LogParser的UI工具--logparserlizard简介
    python简单C/S模式示例
  • 原文地址:https://www.cnblogs.com/FanKL/p/14277039.html
Copyright © 2011-2022 走看看