概述 集合是java中提供的一种容器,可以用来存储多个数据,集合框架主要java.util 包中,存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map...Collection是单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。...List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.TreeSet...System.out.println(name); } LinkedHashSet HashSet保证元素唯一,可是元素存放进去是没有顺序的,在HashSet下面有一个子类java.util.LinkedHashSet...在Map集合中也提供了获取所有Entry对象的方法: public Set> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。
Java 实例 - 数组转集合 以下实例演示了使用 Java Util 类的 Arrays.asList(name) 方法将数组转换为集合: ArrayToCollection.java 文件 以上代码运行输出结果为...: Java 实例 - 集合比较 以下实例将字符串转换为集合并使用 Collection 类的 Collection.min() 和 Collection.max() 来比较集合中的元素: Main.java...类的 Collections.unmodifiableList() 方法来设置集合为只读: Main.java 文件 以上代码运行输出结果为: Java 实例 - 集合输出 以下实例演示了如何使用 Java...集合转数组 以下实例演示了如何使用 Java Util 类的 list.add() 和 list.toArray() 方法将集合转为数组: Main.java 文件 以上代码运行输出结果为: Java...文件 以上代码运行输出结果为: Java 实例 - 集合中添加不同类型元素 以下实例演示了在集合类中添加不同类型的元素: Main.java 文件 以上代码运行输出结果为: Java 实例 - List
需求:用户登录注册案例。 按照如下的操作,可以让我们更符号面向对象思想 A:有哪些类呢? B:每个类有哪些东西呢? C:类与类之间的关系是什么呢? 分析: A:有哪些类呢?...java.util.HashSet; import java.util.Set; /* * Collection * |--List * 有序(存储顺序和取出顺序一致),可重复 * |-...HashSet(); // 创建并添加元素 set.add("hello"); set.add("java"); set.add("world"); set.add("java...* HashSet集合存储自定义对象并遍历。...如果对象的成员变量值相同即为同一个对象 * * 注意了: * 你使用的是HashSet集合,这个集合的底层是哈希表结构。
1.Set 上一篇,我们介绍Java中的List集合。...;第二个Set集合保留了2个元素;第三个集合也只有1个元素; 究竟是什么原因呢?...(1)与HashSet同理,TreeSet继承AbstractSet类,获得了Set集合基础实现操作; (2)TreeSet实现NavigableSet接口,而NavigableSet又扩展了SortedSet...:"+treeSet); } } 测试结果: 抛出异常:提示App不能转换为Comparable对象: Exception in thread "main" java.lang.ClassCastException...: com.jiaboyan.collection.App cannot be cast to java.lang.Comparable 为什么会报错呢?
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。...Java平台的完整集合框架如下图所示: ? ...它的一个子接口ListIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。...各大类直接的区别可以参见:java中Map,List与Set的区别 探索equals()和hashCode()方法 Java集合框架源码剖析:HashSet 和 HashMap: http://blog.jobbole.com...Java集合框架源码剖析:TreeSet 和 TreeMap: http://blog.jobbole.com/102230/ java集合类TreeMap和TreeSet 注意:TreeSet 和
前言 这篇基础文章其实原本写得很久,内容有点荣誉,因为老想把每句源码都解释清楚,但是写着写着又坚信你们有能力读懂。综合考虑还是对于大部分简单的源码都cv即可,少部分源码再解释。 ?...java集合可以说无论是面试、刷题还是工作中都是非常常用的。抛去Iterable , 从Collection 级别说起,整个java集合主要分为Collection 和Map 两大类。...List 简单来说就是存取有序的集合,并且有索引值,元素可以重复。 ? ArrayList 结构及构造函数 ?...如果传进来的集合类型是ArrayList ,直接赋值即可,否则借助Arrays.copyOf 进行赋值。...还有一种是增加另外一个集合,也是有两种。 ? 简单地插在末尾的情况就不说了,主要说下图中标序号的情况 ? 删除 删除某个对象的代码如下 ?
集合概述 集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。...(集合中存储的是引用) Java 集合主要有 3 种重要的类型: List:是一个有序集合,可以放重复的数据 Set:是一个无序集合,不允许放重复的数据 Map:是一个无序集合,集合中包含一个键对象,一个值对象...迭代 -集合结构只要发生改变,迭代器必须重新获取,如果还是用的之前的迭代器,就会出现异常java.util.ConcurrentModificationException public class CollectionTest02...; import java.util.TreeSet; /*TreeSet 集合中元素可排序的第二种方式: 用比较器的方式 comparator 最终的结论: 放到TreeSet集合中或者TreeMap...Map Map集合的遍历 package Example6; import java.util.HashMap; import java.util.Iterator; import java.util.Map
从这篇开始,我将把我所学的java体系的知识点总结并分享出来,并放在GitHub上,希望你能有所收获。...这是Java的集合体系,我们需要重点关注的大概就是其中的ArrayList、HashMap,这也是面试经常问到的内容,包括对应的替代及衍生。...util包下的集合类都是快速失败的,不能再多线程下修改;util.concurrent下的容器都是安全失败的,可以用于并发修改。...添加元素 直接添加会将元素从集合的0开始添加 指定位置添加则要求在此位置之前的元素是存在的,否则将会报错。 删除元素 和新增差不多,从6号为开始复制放到原来的5号位置上开始。也是复制大量的元素。...这两种并发集合,虽然牛逼,但只适合于读多写少的情况,如果写多读少,使用这个就没意义了,因为每次写操作都要进行集合内存复制,性能开销很大,如果集合较大,很容易造成内存溢出。
本文链接:https://blog.csdn.net/weixin_42528266/article/details/102977980 Java集合 ?...集合架构 Collection 接口存储一组不唯一,无序的对象 List 接口存储一组不唯一,有序(索引顺序)的对象 Set 接口存储一组唯一,无序的对象 Map接口存储一组键值对象,提供key到value...的遍历方法 for for-each Iterator迭代器 理解面向接口编程 List list = new ArrayList(); ArrayList list = new ArrayList(); 集合中内容是否相同
,无需循环条件 遍历集合时底层调用Iterator完成操作 For-each缺陷 数组 不能方便的访问下标值 不要在for-each中尝试对变量赋值,只是一个临时变量 集合 与使用Iterator相比...Iterator没有此功能 使用泛型 起因 JDK1.4以前类型不明确: 装入集合的类型都被当作Object对待,从而失去自己的实际类型。 从集合中取出时往往需要转型,效率低,容易产生错误。...解决办法:泛型,在定义集合的时候同时定义集合中对象的类型 好处:增强程序的可读性和安全性 Collections 专门用来操作集合的工具类 构造方法私有,禁止创建对象 提供一系列静态方法实现对各种集合的操作...提供了新的线程同步集合类,委员java.util.concurrent包下,使用Lock锁 ConcurrentHashMap、CopyOnWriteArrayList 、CopyOnWriteArraySet...: 注意 不是CopyOnWriteHashSet 集合总结 ?
当然 Java 里的数组是无法自动扩的,方法是使用一个新的数组代替已有的容量小的数组,就像我们用一个小桶装水,如果想装更多的水,就得换大水桶。...是一个集合接口。...它提供了对集合对象进行基本操作的通用接口方法。 java.util.Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、 线程安全等操作。...九:数组在内存中是如何分配的 对于 Java 数组的初始化,有以下两种方式 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度,如: //只是指定初始值,并没有指定数组的长度...,如: //只是指定了数组的长度,并没有显示的为数组指定初始值,但是系统会默认给数组数组元素分配初始值为null String[] cars = new String[4]; //③ 因为 Java
在Java程序里面有一个非常重要的概念,叫做容器。 数组就是其中的一种容器,除了数组,还有一种叫做集合。 它们之间有何区别? 数组长度固定,不可变,可以存储任何数据类型,但是存储的数据类型要一致。...集合长度可变,只能存储引用数据类型(基本数据类型会转换成对应的引用数据类型,也就是包装类),存储的数据类型可以不一致。 集合按照其储存结构分为单列集合(Collection)和双列集合(Map)。...常用的方法有如下几种: ①add方法:向集合中添加元素。 向collection集合中添加元素必定成功,因为collection集合的元素可以重复,有的集合不能重复添加元素,就会失败。...将集合中的所有元素清空,但是集合依旧还存在。 若是collection=null,表示不仅元素没了,集合也没了。...在Java里面就是查询这个元素,查到了接着查询下一个元素,不停地重复。 ②既然是不同地重复,那怎么结束? 迭代器中的next方法就是获取当前元素。
List 接口的常用方法3.ArrayList 集合4.LinkedList 集合5.Vector 集合 1 - List 特点 List接口继承至Collection接口,存储在List集合中的元素可以重复...,且可以为NULL; 与Map集合不同,List集合是有序的,可以像数组一样通过索引来获取元素。...// 1-在指定位置插入元素,后面的元素都往后移一个元素 void add(int index, E element) // 2-在指定的位置中插入c集合全部的元素,如果集合发生改变,则返回true,否则返回...extends E> c) // 3-返回list集合中指定索引位置的元素 E get(int index) // 4-返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回...// 在集合的头部添加一个元素 void addFirst(E e) // 在集合的尾部添加一个元素 void addLast(E e) // 获取集合的第一个元素 E getFirst() // 获取集合的最后一个元素
本篇目录 1- Set集合的特点 2- Set集合常用方法 3- HashSet 4- TreeSet 5- LinkedHashSet Set 继承关系图 1 Set集合的特点 继承关系:从Set...集合的继承图可以看到,它与List集合一样继承了Collection接口,说明Set集合也是一个单列集合。...2 Set集合常用方法 向集合中添加一个元素,成功添加返回true,失败则返回false set.add("测试数据") 从集合中删除一个元素,成功删除返回true,失败则返回false set.remove...("测试数据") 判断元素是否在Set集合中,存在返回true,不存在返回false set.contains("测试数据") 返回Set集合存储元素的数量,返回一个数字,这个数字就是Set集合当前的大小...set.size() 以上就是Set集合的最基本的一些用法,如果有兴趣可以继续学习一下它的其他方法,如Set集合转数组、获取stream流等方法。
在Java里面,Map就是满足这种一一映射关系的集合,也叫双列集合。 前几天学的集合叫Collecion,是单列集合。 Map存储元素是一对一对的存的(就像夫妻一样),所以又叫夫妻集合。...key值就类似于索引,但是它不允许重复,也不是有序的,所以需要先获取集合中所有的key值,再遍历。 ①keySet方法:获取集合中的所有key值。...因为Map集合中的key值很多,它返回的也是一个集合,因为key值不可能重复,所以是Set集合。 ②增强for循环: 将每一个key遍历出来,再用get根据key值获取对应的value。...Map集合不能直接使用迭代器或者增强for循环进行遍历,但是转成Set之后就可以使用了。 ①entrySet方法:获取Map集合中的键值对集合 就相当于把Map集合转换成Set集合。...Set集合怎么遍历?直接增强for循环 ②增强for循环遍历Set集合 这样就可以得到集合中所有的键值对。 ③getValue方法:获取键值对中的value。 从键值对中获取其中的值。
目录 1- Map集合特点 2- Map接口的常用方法 3- HashMap集合 4- TreeMap集合 5- Hashtable集合 6- Map集合遍历的三种方法 Map集合特点 Map接口没有继承其他接口...key) 判断集合是否包含指定键 // 返回Boolean值 map.containsKey(Object key) 清空集合 map.clear() 获取集合的长度 // 返回一个int类型值...Map集合遍历方法 这里介绍三种常用方法 第一种方法:使用ForEach方式遍历 利用entrySet方法返回一个Entry的Set集合,而Set集合是单列集合,我们可以遍历这个Set集合来做到遍历整个...Map集合。...,执行这个迭代器则可以遍历整个Map集合。
老读者都知道,我是自学转行到 java 的。那时迫于生存压力,学得比较快,很多知识点仅停留在会用的层面。最近,光会用不知道原理,没什么意思。每次使用时都是机械性的 "熟练使用"。...加之一直有回归基础的想法,所以想在业余时间复盘 java 的基础知识。知其然知其所以然是技术人的追求。 说到复盘基础,并不是所有的都会复盘,没那个时间更没那个必要。...比如,一些基础的语法以及条件语句,极度简单。这类是不需要复盘的。思前想后,我觉得整个计划应该从集合开始,而复盘的方式就是读源码。...这篇先简单介绍下集合的整体概览,之后会具体到集合里面每个实现类的源码解析。 1、Java 为什么要有集合? 首先,java 是一门面向对象语言,操作对象是我们的日常。...他们都会有共性, 而 java 就根据这些共性,给我们提供了 Collection 集合。 2、Collection 接口框架图 ?
Java Properties集合基础解析 本期学习的properties集合是项目中经常用到的操作 什么是Properties集合?...java.util.Properties集合继承于Hashtable,来表示一个持久的属性集,他使用键值结构存储数据,每个键及其对应的值都是一个字符串,该类被许多java类使用,比如获取系统属性时,System.getProperties...,方法就是返回一个Properties对象 properties集合是唯一一个与IO流相结合的集合 可以使用Properties集合中的方法store把集合中的数据持久化 可以使用Properties...集合中的load方法,把硬盘中保存的文件(键值对)存储到集合中使用,这在项目中 用于读取配置文件经常使用到 属性表中每个键及其对应值都是一个字符串 Properties集合是一个双列集合(双列集合是每个元素由键和值两部分组成...以上就是Properties集合的一些基础知识,如有错误请各位批评指正,喜欢我的文章可以点赞收藏,我会不定期更新文章,各位道友也可以关注我
Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五)...:流程控制语句 Java基础(六):数组 Java基础(七):面向对象编程 Java基础(八):封装、继承、多态性 Java基础(九):Object 类的使用 Java基础(十):关键字static、代码块...、关键字final Java基础(十一):抽象类、接口、内部类 Java基础(十二):枚举类 Java基础(十三):注解(Annotation) Java基础(十四):包装类 Java基础(十五):异常处理...Java基础(十六):String的常用API Java基础(十七):日期时间API Java基础(十八):java比较器、系统相关类、数学相关类 Java基础(十九):集合框架 Java基础(二十)...:泛型 Java基础(二十一):集合源码 Java基础(二十二):File类与IO流 Java基础(二十三):反射机制 Java基础(二十四):网络编程 Java基础(二十五):Lambda表达式、方法引用
(集合版)(理解) 2:Set集合(理解) (1)Set集合的特点 (2)HashSet集合(掌握) (3)TreeSet集合(理解) (4)案例 3:Collection...============================================================================= 1:用户登录注册案例(集合版)(理解) --...; 4 import java.util.TreeSet; 5 6 /* 7 * 需求:请按照姓名的长度排序 8 * 9 * TreeSet集合保证元素排序和唯一性的原理: 10...1.用集合HashSet实现 1 package cn.itcast_08; 2 3 import java.util.HashSet; 4 import java.util.Random;...ArrayList实现 1 package cn.itcast_02; 2 3 import java.util.ArrayList; 4 import java.util.Random;
领取专属 10元无门槛券
手把手带您无忧上云