zoukankan      html  css  js  c++  java
  • java ---------- 集合(二) Set 接口和Iterator 接口

    Set 接口:

    Set接口也是Collection 的一个子接口,它主要有两个实现类:HashSet 类和 TreeSet类。HashSet用的稍微多点

    特点:集合中额对象不按特定的方式排序,不能保存重复的对象(重复了怎么弄得清),简单说就是可以存储一组唯一、无序对象。

    HashSet 类:

    特点:

    1、查找效率高 ,按照Hash 算法进行存储数据。

    2、集合内元素是无序排列的。

    3、是非线程安全的,不能保持同步,多个线程同时访问或修改一个 HashSet,则必须通过代码来保证其同步

    4、允许集合元素为 null

    常用方法:

      增加 boolean add(Object o)  ,

       删除所有  void clear()

      删除指定  boolean remove(Object o)

      返回数量   int size()

      判断指定元素有没有  boolean contains(Object o)

      判断集合中有没有元素   boolean isEmpty()

    package com.obge.boge;
    
    import com.obge.model.Animal;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class HashSetStu {
    
        public static void main(String[] args) {
            Animal animal1 = new Animal("dog1",2,"n1");
            Animal animal2 = new Animal("dog2",1,"n1");
            Animal animal3 = new Animal("dog3",3,"n1");
            Set hashSet = new HashSet();
            hashSet.add(animal1);
            hashSet.add(animal2);
            System.out.println("元素中有:"+hashSet.size()+"个");
            System.out.println("有没有animal3:"+hashSet.contains(animal3));
            System.out.println("遍历所有");
            for(Object obj:hashSet){
                Animal animal = (Animal) obj;
                System.out.println(animal.getName());
            }
            System.out.println("判断是否为空"+hashSet.isEmpty());
    
        }
    
    
    }

    存储顺序:

    向HashSet 集合中存储元素时,会调用hashCode() 方法得到该对象的hashcode 值,根据该值决定该对象在HashSet中的位置。、

    如果有两个元素通过equals() 方法比较返回的结果为true,但hashcode值不等,一样可以存储,并放到不同位置

    遍历方法:

    主要有三种:for循环遍历,使用增强型for循环遍历、使用Iterator 遍历

    注意:

    普通for() 循环通过get() 方法取出每个对象

    Set 接口不能使用普通的for循环遍历,由于其不存在get() 方法,其他两种可以

    List 接口三种都行

    Iterator 接口:对集合进行迭代的迭代器,为集合而生

    主要有两个方法:

    hasNext()  判断是否存在下一个可访问的元素,如果仍有元素可以迭代,则返回true

    next()         返回要返回的下一元素

    凡是由Collection 接口派生而来的接口或类,都实现了iterate()方法,iterate()方法返回一个Iterator 对象

  • 相关阅读:
    剑指offer(三):从尾到头打印链表
    解决windows hadoop的yarn与node的yarn 命令冲突问题
    python实现计算顶点聚类系数顶点聚集系数clustering coefficient
    解决由于pytorch 安装慢导致安装失败的问题
    Golang数据类型 数组(arry)
    Golang运算符
    Golang流程控制语
    Golang基础数据类型
    Golang简介
    https协议
  • 原文地址:https://www.cnblogs.com/obge/p/12466579.html
Copyright © 2011-2022 走看看