• Java开发知识之Java中的集合Set接口以及子类应用


    ---恢复内容开始---

                Java开发知识之Java中的集合Set接口以及子类应用

    一丶Set接口以及作用

      在上一讲.我们熟悉了接口的实现图.以及自己各有的子类.

      List接口主要存储的数据是可以重复的.并且一个是动态数组 (ArrayList) 一个是链表操作(LinedList)

    Set接口:

      Set集合主要的作用就是 Set集合中的对象,不按照特定的方式排序.只是简单的把对象加入到集合中,但是最重要的一点就是.Set集合中不能包含重复的对象.Set集合是个接口,实现了Collection接口.因此Collection接口中的所有方法.Set接口中都要.

    二丶Set接口的具体实现类.

      HashSet 跟 TreeSet

    两个类分别的作用:

      HashSet:

        HashSet类,实现了Set接口.是由哈希表(HashMap 实例.也就是对象支持的),他不保证Set的迭代顺序.

    特别的是他不保证这个顺序是恒久不变的.这个类可以使用Null元素.

      TreeSet:

        TreeSet不仅实现了Set接口,还是先了Java.utio.SortedSet接口,因此TreeSet类实现的Set集合.

    在遍历集合的时候.会按照自然顺序递增排序.也可以按照指定的比较器的递增排序.

    总结:

        总结来说.两个类一个类是不保证顺序的.一个类是可以按照顺序遍历或者迭代的.(遍历跟迭代一个意思)

    1.TreeSet类中的方法

      

    firset方法.返回Set集合中第一个元素.或者最低的元素.

    last()方法, 返回Set集合中最后一个元素.或者最高的元素.

    compareator():就是返回比较器.如果自然排序.就返回null

    以上方法就是返回一个新的Set集合. 可以范围返回. 也可以之间返回.

    2.使用TreeSet. 

      1.建立一个类.实现Comparable泛型接口

      2.此类重写接口中的compareTo方法.

      3.方法中比较.id. 谁大返回谁.

    public  class Student implements Comparable<Object> {
    
        String name;
        int id;
        public Student(String name,String id) {
            // TODO 自动生成的构造函数存根
            this.name = name;
            this.id  = Integer.parseInt(id);
        }
    
        
        public  int compareTo(Object o) {
            // TODO 自动生成的方法存根
            Student stu = (Student)o;
            int result = this.id > stu.id ? 1:(this.id ==  stu.id  ? 0 : 1);
            return 0;
        }
      // 以下提供SetGet方法即可,这里不再写了.
    }

    实现了compareTo方法. 并且判断id. 如果id > 传入对象的Id. 那么就返回1,否则判断是否相等.相等返回0.否则返回1

    PS: 这里实现Compareable<>接口的时候.里面需要传入Object

    使用TreeSet类.

      使用TreeSet就是将对象存入TreeSet集合中,但是前提就是必须我们的对象必须是上面实现了Compareable<Object>接口的对象才可以. 并且重写了排序方法.这样我们的TreeSet集合才能使用.

      比如我们存储字符串

            //1.使用add方法.添加到集合中.
            tree.add("Apple");
            tree.add("banale");
            tree.add("boy");
            tree.add("Girl");
            //2.全部遍历
            System.out.println("开始进行全部遍历");
            java.util.Iterator<String> it = tree.iterator();
            while(it.hasNext()) {
                String str = (String)it.next();
                System.out.println("遍历结果 " + str);
            }

    添加跟遍历

    结果:

  • 相关阅读:
    Tomcat安装和使用
    mysql5.7.18安装配置
    Memcached安装与使用
    Redis
    nginx的安装与使用
    python操作mysql
    Paramiko模块
    协程与异步IO
    Queue与生产者消费者模型
    C# 生成验证码 方法二
  • 原文地址:https://www.cnblogs.com/iBinary/p/9825320.html
Copyright © 2020-2023  润新知