Java集合框架(二) - Set的实现类

6 篇文章 0 订阅
1 篇文章 0 订阅

Java集合框架 - Set的实现类

Set中不能放置重复的对象,其原因是没有角标(当取数据或者删除数据时,代码不知道应该访问哪个对象)。

Set中,没有求长和替换。Set中的值要么全部拿出来,要么都不要拿出来。

1)HashSet<E> ()

利用散列哈希算法,将Set中的值进行排列起来。在外部表现出来是无序的,其内部是用散列哈希算法将值排列起来。遍历可用foreach循环(底层也是迭代器)、或者迭代器。

2)LinkedHashSet<> ()

用链表实现,其顺序是往里放进去的顺序。

import java.util.*;

public class Demo {

    public static void main(String[] args) {

        Set<String> set = new LinkedHashSet<>();
        set.add("shi");
        set.add("han");
        set.add("lu");
        set.add("wang");
        set.add("yang");
        for(String str : set) {
            System.out.println(str +" ");
        }

    }

}
"C:\Program Files\Java\jdk1.8.0_172\bin\java.exe" ...
shi 
han 
lu 
wang 
yang 

Process finished with exit code 0

 3)TreeSet<> ()

往TreeSet中放置元素,其中的元素要实现Comparable接口,否则会报错。往里放置元素的时候,就会顺便排好序。

按照顺序字典排序,升序排序。底层是一个平衡二叉树(当有一边的深度比另一边大于2时,就会旋转树,往深度低的一边旋转)(只要大于2就会旋转)。

import java.util.*;

public class Demo {

    public static void main(String[] args) {

        Set<String> set = new TreeSet<>();
        set.add("shi");
        set.add("han");
        set.add("lu");
        set.add("wang");
        set.add("a");
        set.add("yang");
        for(String str : set) {
            System.out.println(str +" ");
        }
        
    }

}
"C:\Program Files\Java\jdk1.8.0_172\bin\java.exe" ...
a 
han 
lu 
shi 
wang 
yang 

Process finished with exit code 0

 上述中介绍,便是Set接口中的三个实现类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值