Java集合框架之规则集
Java集合框架之规则集
YH_猿员猿 发表于2年前
Java集合框架之规则集
  • 发表于 2年前
  • 阅读 60
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

    规则集是用于存储一组不重复的元素的集合。规则集Set接口是对Collection接口的一种扩充,它没有引入新的方法和变量,只是规定了Set的实例不包含重复的元素。
    Set接口有3个具体的实现类:散列类HashSet,链式散列类LinkedHashSet和树形类TreeSet。

散列集HashSet

    HashSet类是一个用于实现Set接口的具体类,它可以使用无参构造方法创建,也可以由一个现有的集合创建散列集。

客座率:是在测量在增加规则集的容量之前,该规则集的饱满程度。当元素数量超过了规则集的饱满程度,容量就会翻倍。默认为容量16,客座率0.75.

    考虑到效率问题,添加到散列集中的对象必须以一种正确的分散散列码的方式实现HashCode方法。

HashCode:Object类中定义的一种方法,作用是对集合中象间的比较提高效率,它通过一种特俗的函数运算,将集合中的对象映射到一组数值上,相同的对象一定有相同的Code值,不同的对象可能有相同的散列码,我们在用方法进行比较。以此提高效率。

public class TestHashSet {
    //create a hash set
    public static void main(String[] args){
        Set<String> s = new HashSet<String>();
        //Add Strings to the set
        s.add("London");
        s.add("Paris");
        s.add("New York");
        s.add("London");

        System.out.println(s);

        //迭代器
// Iterator<String> inIterator = s.iterator();
// while(inIterator.hasNext()){
// System.out.println(inIterator.next().toUpperCase()+" ");
// }

        for(Object element:s){
            System.out.println(element);
        }       
    }
}

这个程序中添加了两次London,但只要一个会被存储。因为规则集中不允许有重复的元素。HashSet是没有顺序的。

for-each循环可用于Collection的任何实例上。

链式散列表LinkedHashSet

    它扩展了HashSet,支持对规则集的元素进行排序,它可以按照插入规则集的顺序提取。

如果不需要维护元素被插入的顺序,应使用HashSet。

树形TreeSet

    SortedSet是set的一个子接口,它可以确保规则集中的元素是有序的,它提供了两个方法first()和last()来返回第一个和最后一个元素,以及方法headSet(t)和tailSet(f)以返回小于t和大于或等于f的那一部分。
    NavigableSet扩展了SortedSet,它又提供了导航方式而TreeSet
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 12
码字总数 0
×
YH_猿员猿
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: