0
点赞
收藏
分享

微信扫一扫

【Java语言面向对象】(59)HashSet

飞空之羽 2022-03-11 阅读 57

package com.njwbhz.March.week1.part0303;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.stream.Stream;

public class TestHashSet {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();

        set.add("hello");
        set.add("world");
        set.add("aa");
        set.add("bb");
        System.out.println(set);//[aa, bb, world, hello]
        //输入的顺序和输出的顺序是无关的
        //说明存放进去是无序的
        //因为内部使用Hash算法
        //给定一个值,根据算法计算出它的地址
        //地址跟输入的顺序是无关的
        set.add("hello");
        System.out.println(set.size());//4
        //输入一个已经存在的元素,容器中元素的数量并没有增加,这说明HashSet是可以避免重复的

//        set.clear();
        //clear的功能就是清空容器中的所有元素,没什么好说的
//        System.out.println(set.isEmpty());//true
        //当执行了set.clear();语句之后,set容器中的所有元素就会被清空,使用isEmpty()判断得到的语句就是true(是空的)
        
        System.out.println(set.contains("aa"));
        //contains()的功能就是判断set容器中是否存在某个元素
        
        set.remove("aa");
        //remove()的功能就是将set容器中的某个元素删除
        System.out.println(set);
        //将set中的元素显示出来,被删除的元素就会没了

//        for (String s : set){
//            System.out.println(s);
//        }

//        Iterator iterator = set.iterator();
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }

        Stream<String> stream = set.stream();
        //开启一个以set为源头的流
        //用泛型限定Stream中只能输入String类型的元素
        stream.filter(data -> data.length() == 5 ? true : false).forEach(o -> System.out.print(o + "\t"));//Consumer消费者,终结操作
        //在stream流的后面加上
        //.filter(data -> data.length() == 5 ? true : false)
        //将字符串不为5的元素过滤掉
        //.forEach(o -> System.out.print(o + "\t"));
        //将过滤完之后的元素通过forEach()遍历出来
        //forEach后面的()中写上o -> System.out.print(o + "\t")
        //重写forEach()中的遍历方法
    }
}
举报

相关推荐

0 条评论