java Collection 之Set使用说明

Set

一个不包含重复元素的collection,确切的讲,set不包含满足e1.equals(e2)的元素对e1,e2,并且最多包含一个null元素;

此实现不是同步的,如果多个线程同时访问一个set,而其中至少一个线程修改了该set,那么它必须保持外部同步,通常是通过对自然封装该set的对象执行同步操作来完成,如果不存在这样的对象,则:Collections.synchronizedSet();

HashSet

集合中元素无顺序,不重复;数据结构是哈希表;

保证元素唯一性的原理:判断元素的HashCode值是否相同,若相同,还会继续判断元素的equals方法,是否为true; 当一个对象被存储进HashSet集合中后,就不能修改这个对象的那些参与计算哈希值的字段了,如果修改后就会造成内在泄漏;

TreeSet

可以对Set集合中的元素进行排序:

(1)让元素自身具备比较性,元素需要实现Comparable接口,覆盖compareTo方法,这种方式也成为元素的自然顺序;

(2)元素自身不具备比较性,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。在集合初始化时就有了比较方式[定义比较器(Comparator<>接口),将它作为参数传给集合的构造函数]

以下两种方式为TreeSet需要实现的两种接口

class Obj implements Comparable<Obj> {

public int compareTo(Obj o)  {

return this.name.compareTo(o.name);

} }

class Comptor implements Comparator<ComptorObj> {

@Override

public int compare(ComptorObj o1, ComptorObj o2) {

return o1.name.compareTo(o2.name);

} }

(0)

相关推荐

  • Java中的collection集合类型总结

    Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.* Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工具类(Iterator迭代器.Enumeration枚举类.Arrays和Collections). Java集合工具包框架如下图. 说明:看上面的框架图,先抓住它的主干,即Collection和Map. Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作

  • java中Collections.sort排序函数用法详解

    Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的. compare(a,b)方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数. equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true. Collections.

  • 详解java中的Collections类

    一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList  Collectio

  • java TO ArrayCollection

    复制代码 代码如下: private var javalist:ArrayCollection; function resultHandler(event:ResultEvent):void{ javalist=ArrayCollection(event.result); //javalist=event.result as ArrayCollection; javabar.dataProvider=javalist; } JAVA代码返回java.util.List对象, 因为new Arra

  • java基础之Collection与Collections和Array与Arrays的区别

    java基础之Collection与Collections和Array与Arrays的区别 1.Collection 在Java.util下的一个接口,它是各种集合结构的父接口.继承与他的接口主要有Set 和List. 2.Collections java.util下的一个专用静态类,它包含有各种有关集合操作的静态方法. 提供一系列静态方法实现对各种集合的搜索.排序.线程安全化等操作. Array与Arrays的区别 1.数组类Array  Java中最基本的一个存储结构. 提供了动态创建和访问

  • java Collection 之List学习介绍

    List 一个有序的集合,允许元素的重复:该实现不是同步的,如果多个线程访问一个List实例,而其中至少一个线程从结构上修改了表(添加或删除元素),那么它需要保持外部同步:一般通过对自然封装该列表的对象进行同步操作来完成,如:Collections.synchronizedList()来包装列表: ArrayList List接口的大小可变数组的实现,实现了所有可选列表操作,并且允许包括null在内的所有元素, LinkedList List接口的链接列表实现,允许元素为null,实现所有可选的

  • java Collection 之Set使用说明

    Set 一个不包含重复元素的collection,确切的讲,set不包含满足e1.equals(e2)的元素对e1,e2,并且最多包含一个null元素: 此实现不是同步的,如果多个线程同时访问一个set,而其中至少一个线程修改了该set,那么它必须保持外部同步,通常是通过对自然封装该set的对象执行同步操作来完成,如果不存在这样的对象,则:Collections.synchronizedSet(): HashSet 集合中元素无顺序,不重复:数据结构是哈希表: 保证元素唯一性的原理:判断元素的H

  • 浅谈java Collection中的排序问题

    这里讨论list.set.map的排序,包括按照map的value进行排序. 1)list排序 list排序可以直接采用Collections的sort方法,也可以使用Arrays的sort方法,归根结底Collections就是调用Arrays的sort方法. public static <T> void sort(List<T> list, Comparator<? super T> c) { Object[] a = list.toArray(); Arrays.

  • Java Collection集合iterator方法解析

    这篇文章主要介绍了Java Collection集合iterator方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Iterator接口概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返回true. * 即判断集合中还有没有下ー个元素,有就返回true,没有就返回 false * E next() * 返回送代

  • Java Collection 移除元素方法及注意事项

    1. 前言 操作集合是一个 Java 编程人员几乎每天都在重复的事情.今天我们来研究一下从 Java Collection 中删除元素的方法.我构建了一个简单的集合,我们以此为例子来展开探索. List<String> servers = new ArrayList<>(); servers.add("Felordcn"); servers.add("Tomcat"); servers.add("Jetty"); serv

  • Java Collection集合用法详解

    目录 1.集合的主要体系及分支 1.1Collection集合及实现类 2.List集合(List是带有索引的,所以多注意索引越界等问题) 2.1 List的实现类 3.Set集合 3.1HashSet(Set的实现类) 3.2TreeSet集合(Set的实现类) 4.集合的高频面试题 4.1Arraylist 与 LinkedList 异同 4.2ArrayList 与 Vector 区别 集合框架底层数据结构总结 1.Collection 1.集合的主要体系及分支 1.1Collection

  • Java Collection 接口和常用方法综合详解

    目录 1. Collection 接口实现类的特点 2. Collection 接口常用方法 3. Collection接口遍历元素方式1- 使用Iterator(迭代器) 4. Collection 接口遍历对象方式2- for 循环增强 5. 练习 1. Collection 接口实现类的特点 public interface Collection<E> extends Iterable<E> 1)Collection实现子类可以存放多个元素,每个元素可以是Object 2)有

  • JAVA collection集合之扑克牌游戏实例

    Collection 层次结构中的根接口.Collection表示一组对象,这些对象也称为collection的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 collection 是有序的,而另一些则是无序的.JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现.此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection. 主要内容:这里使用collection集合,模拟香港电影中大佬们玩的

  • Java Collection集合遍历运行代码实例

    Iterator : 迭代器,集合的专用遍历方式 Iterator <E> iterator() : 返回此集合中元素的迭代器,通过集合的iterator()方法得到 迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的 Iterator中的常用方法 E next() : 返回迭代中的下一个元素 boolean hasNext() : 如果迭代具有更多元素,则返回true 代码如下 public class CollectionDemo_01 { public s

  • java 的Collection接口实例详解

    1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set. Collection     |--List:元素是有序的,元素可以重复.因为该集合体系有索引.         |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步.         |--LinkedList:底层使用的链表数据结构.特点:增删速度很快,查询稍慢.线程不同步.         |--Vector:底层是数组数据结构.线程同步.被ArrayLi

随机推荐