前言:

        1、何为框架:可以理解为一个基础结构,在基础结构上进行进一步开发会变得很方便。

2、三种集合类型:集合(Set) :元素无序不可重复; 列表(List) :元素有序可重复; 映射(Map) :键不可以重复,值可以重复

Set是实现Collection接口的一个子接口。其常用的实现类有HashSet、LinkedHashSet、TreeSet等。下面将从“set和hashSet的一些用法、set和LinkedHashSet的一些用法”来进行学习总结。

HashSet常用方法的总结:   
public static void BestTest() {
// set和hashSet的一些用法
//HashSet<String> hashSet = new HashSet<String>();
//hashSet向上转型为Set类型,上面声明Set的方法不建议使用
Set<String> set = hashSet;
Set<String> set = new HashSet<String>();
boolean b1 = set.isEmpty();
System.out.println(b1); set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("c"); //重复元素会忽略掉 boolean b2 = set.isEmpty();
System.out.println(b2); int i = set.size();
System.out.println("clear之前总的元素为:"+i);
set.remove("a"); set.clear();
int j = set.size();
System.out.println("clear之后总的元素为:"+j);
} 为什么使用Iterator遍历Set集 public static void setTest() {
        Set<String> set = new HashSet<String>();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
set.add("c"); //重复元素会忽略掉 // 调用Set对象的iterator(),会生成一个迭代器对象,该对象用于遍历set
Iterator<String> it = set.iterator(); // 这里进行泛型设置
// while用于不定次数的循环
while (it.hasNext()) {
System.out.println(it.next()); //取出元素并将游标向后移动1位
}
}
总结:因为set是无序的,不能通过下标取,只能通过迭代器Iterator取。
hasNext():有没有下一个元素。next():返回游标所指元素的元素(将其取出),并将游标向后挪一位。 继承关系:Iterator <-- Collection <-- Set(List) <-- HashSet LinkedHashSet
LinkedHashSet:使用链表维护了一个添加进集合的顺序。导致我们“遍历”该集合元素时,是按照添加进去的顺序遍历的(这个并不能说明是有顺序的,因为set本身就是“无序且不可重复的”) 。 LinkedHashSet插入性能略低于HashSet。linkedHashSet的迭代访问性能高于HashSet
public static void testLinkedHashSet() {
Set set = new LinkedHashSet();
set.add(123);
set.add(456);
set.add("A");
set.add(null); Iterator iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}

集合框架之Set学习的更多相关文章

  1. 集合框架源码学习之ArrayList

    目录: 0-0-1. 前言 0-0-2. 集合框架知识回顾 0-0-3. ArrayList简介 0-0-4. ArrayList核心源码 0-0-5. ArrayList源码剖析 0-0-6. Ar ...

  2. 集合框架源码学习之HashMap(JDK1.8)

    目录: 0-1. 简介 0-2. 内部结构分析 0-2-1. JDK18之前 0-2-2. JDK18之后 0-3. LinkedList源码分析 0-3-1. 构造方法 0-3-2. put方法 0 ...

  3. 集合框架源码学习之LinkedList

    0-1. 简介 0-2. 内部结构分析 0-3. LinkedList源码分析 0-3-1. 构造方法 0-3-2. 添加add方法 0-3-3. 根据位置取数据的方法 0-3-4. 根据对象得到索引 ...

  4. 集合框架之Map学习

    Map接口的实现类有HashTable.HashMap.TreeMap等,文章学习整理了“ Map和HashMap的使用方法”. /** * Map和HashMap的使用方法 */public sta ...

  5. [转]Java - 集合框架完全解析

    数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...

  6. Java - 集合框架完全解析

    来自:http://www.jianshu.com/p/63e76826e852 数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织 ...

  7. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

  8. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  9. Java集合框架学习(一)List

    先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...

随机推荐

  1. 【明哥报错簿】之【inside the host appBase has been specified, and will be ignored】和【did not find a matching property.】

    tomcat启动时有时候会报一些警告,项目有时候也是可以正常运行.但是警告出现还是要找到原因消灭掉,两个典型的警告解决办法如下: 1.[inside the host appBase has been ...

  2. HttpHelper类及调用

    首先列出HttpHelper类 /// <summary> /// Http操作类 /// </summary> public class HttpHelper { priva ...

  3. JAVA中的堆、栈等内存分析

    在 JAVA 中,有六个不同的地方可以存储数据 1. 寄存器( register ) 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译器根据 ...

  4. Visual Format Language(VFL)视图约束

    约束(Constraint)在IOS编程中非常重要,这关乎到用户的直接体验问题. IOS中视图约束有几种方式,常见的是在IB中通过Pin的方式手动添加约束,菜单Editor->Pin->. ...

  5. LUCAS定理简述

    Lucas定理解决的是n,m比较大而p是小于100000质数 简而言之就是Lucas(n,m)=C(n%p,m%p)*Lucas(n/p,m/p)%p; 其中组合数C是用任意一种计算10五次方内取模的 ...

  6. Codeforces 576C. Points on Plane(构造)

    将点先按x轴排序,把矩形竖着划分成$10^3$个块,每个块内点按y轴排序,然后蛇形走位上去. 这样一个点到下一个点的横坐标最多跨越$10^3$,一共$10^6$个点,总共$10^9$,一个块内最多走$ ...

  7. 简述this,call,apply,bind之间的关系

    一.什么是this? this是JavaScript语言的一个关键字,它是函数运行时在函数体内部自动生成的一个对象,只能在函数体内部使用.函数的不同使用场合,this的指向不同. 在ES5中,this ...

  8. jQuery 前端实现手机验证码

    html <input id="phone" type="text" name="phone"> <input id=&q ...

  9. advanced bash shell guide读书笔记

    http://note.youdao.com/noteshare?id=fc23a679849b4627d131d3ef07c74a71

  10. Chrome工具使用

    (1) Chrome插件的使用 本来还想说FQ了,结果实验半天没成功,最后才知道公司已经邮件通知了,郁闷,FQ后我把我的插件重新装了一遍,觉得好像又懂了好多,记载下来我装的一些东西和有关PostMan ...