集合--Set

Set

HashSet : 不能保证元素的排列顺序 ------ 元素遍历的顺序和保存的顺序不一样 —并不是遍历每次随机

LinkedHashSet : LinkedHashSet作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历,对于频繁的遍历操作,LinkedHashSet效率高于HashSet

TreeSet : TreeSet底层基于红黑树,TreeSet可以按照添加对象的指定属性,进行排序。

HashSet


import java.util.HashSet;
import java.util.Iterator;

/**
 * Set-----接口 --- 没有下标,元素不可重复
 */
public class MyTest1 {
    public static void main(String[] args) {
        /**
         * HashSet基本使用
         * 1.创建HashSet对象
         * 2.使用
         * 3.不能保证元素的排列顺序 ------ 元素遍历的顺序和保存的顺序不一样 ---并不是遍历每次随机
         */
        //创建HashSet对象
        HashSet<String> set = new HashSet<>();
        //添加元素
        set.add("JavaSE基础");
        set.add("JavaSE高级");
        set.add("JMySQL");
        set.add("11111111111111");
        set.add("JDBC");
        set.add("前端");
        set.add("%%%%%%%%%%%%");
        set.add("JavaWeb");
        //打印
        System.out.println(set);
        /**
         * 遍历
         * 1.增强for循环
         * 2、迭代器
         */

        for (String item:set) {
            System.out.println(item);
        }
        System.out.println("-------------------------------------------");

        //Iterator<String> it =set.iterator();
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            String item = it.next();
            System.out.println(item);
        }
        System.out.println("--------------------------------------------");

        //java8新特性
         set.forEach(item -> System.out.println(item));

        System.out.println("---------------------------------------------");

        set.stream().forEach(item-> System.out.println(item));

LinkedHashSet

package com.sdut.k5;

import java.util.Iterator;
import java.util.LinkedHashSet;

public class MyTest3 {
    public static void main(String[] args) {
        //LinkedHashSet
        //LinkedHashSet作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历,对于频繁的遍历操作,LinkedHashSet效率高于HashSet
        LinkedHashSet<String> set = new LinkedHashSet<>();
        set.add("111111111111111111111");
        set.add("JavaSE");
        set.add("JDBC");
        set.add("MySQL");
        set.add("******");
        set.add("前端");
        set.add("JavaWeb");
        for (String item : set) {
            System.out.println(item);

        }

        System.out.println("--------------------------");
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

TreeSet

package com.sdut.k5;

import java.util.Comparator;
import java.util.TreeSet;

public class MyTest4 {
    public static void main(String[] args) {
        /**
         * TreeSet底层基于红黑树
         * 比较
         *      |----自然排序
         *      |----定制排序
         *  TreeSet可以按照添加对象的指定属性,进行排序。
         */
        TreeSet<String> treeSet = new TreeSet<>();
        treeSet.add("111");
        treeSet.add("222");
        treeSet.add("zzzzz");
        treeSet.add("aaaa");
        treeSet.add("NNNN");
        treeSet.add("NNNN");
        for (String item : treeSet) {
            System.out.println(item);
        }
        System.out.println("------------------------------");
        //TreSet<Person. treeSet2 = new TreeSet<>(); //yaioqiuTreeSet中的元素实现自然排序
        TreeSet<Person> treeSet2 = new TreeSet<>(new Comparator<Person>() {//定制排序
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge() - o2.getAge();
            }
        });
        treeSet2.add(new Person("001","zs",20));
        treeSet2.add(new Person("002","ls",10));
        treeSet2.add(new Person("003","ww",40));
        treeSet2.add(new Person("003","ww",40));

        for (Person person : treeSet2) {
            System.out.println(person);
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值