
java 集合
不会写代码的菜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java比较器
一.Java比较器的概述1.为什么要使用比较器?当java涉及到数组排序时,就会使用到比较器import java.util.Arrays;public class ComparableTest1 { public static void main(String[] args) { String [] arr = {"AA","FF","SS","BB","DD","CC"}; Arrays.sort(arr); ...原创 2022-04-01 22:00:00 · 2783 阅读 · 0 评论 -
Java Lambda表达式概述及举例
一.为什么要使用Lambda表达式?在JDK8之前,如果我们想把某些功能传递给某个方法,总要自己去创建一个类或写一个匿名内部类,非常麻烦.Lambda表达式就很好的解决了这个问题.Lambda表达式是一个匿名函数,可理解为一段可以传递的代码(将代码想数据一样进行传递),使用它可以写出更加简洁,灵活的代码,使java语言表达能力达到了提升.二.Lambda表达式的格式: (argument) -> { body } ① -> : Lambda操作符或箭头操...原创 2021-12-26 08:30:00 · 213 阅读 · 0 评论 -
Java 集合之ArrayList和LinkedList的区别
ArrayList和LinkedList是集合中List接口的两种不同实现方式,并且两者都不是线程安全的.通常情况下,ArrayList和LinkedList的区别有如下几点:①两者底层实现方式不同 ArrayList底层是基于动态数组的数据结构实现的,而LinkedList底层是基于双向链表的数据结构实现的,这也是两者最本质的区别②访问元素效率不同 对于访问集合中的元素,ArrayList要优于LinkedList 因为LinkedList底层是基于链表实现的...原创 2021-12-25 18:45:00 · 325 阅读 · 0 评论 -
Java 迭代器Iterator
一.迭代器作用: 通用的取出集合中元素的方法(对集合进行遍历)二.迭代器概念: 迭代: 即collection集合元素的通用获取方式,在取出元素之前先要判断集合中是否有没有元素,如果有,就把这个元素取出来,接下来继续判断,如果还有,就继续取出来,直到把集合中所有元素全部取出 这种取出方式专业术语称为迭代 使用java.util.Iterator接口对集合进行遍历 三.迭代器的定义: 提供一种方法访问一个容器(container)对象中各个元素,而又不需要暴露该对...原创 2021-12-23 09:00:00 · 729 阅读 · 0 评论 -
Java Collections类
一.Collections类的概述 Collections类作为集合类的工具类,与数组的工具类Arrays类似 用来处理集合,里面包含的都是静态方法 二.可变长度参数 可变长度参数,即指参数列表在使用时数量可以发生变化,本质是一个数组 语法: 参数类型...参数名 如: int...c 一个参数列表中只能有一个可变参数列表,并且只能在参数列表的最后一位使用 public static void test (int a,int...b){ ...原创 2021-12-23 15:30:00 · 320 阅读 · 0 评论 -
Java Map集合迭代[详解]
这里我们以HashMap为例介绍Map集合的迭代方法 首先创建多个以HashMap实现的对象 Map map = new HashMap(); map.put("AA",123); map.put(45,123); map.put("BB",456);接下来介绍Map集合中的元素遍历方法 //遍历所有的key类: keySet() Set set = map.keySet(); 调用keySet()...原创 2021-12-23 11:00:00 · 1538 阅读 · 0 评论 -
Java Map之TreeMap实现类
保证按照添加的key-value对进行排序,实现排序遍历.此时需要考虑key的自然排序或定制排序(与TreeSet类似,这里不再举例) 底层采用红黑树的存储结构 import java.util.TreeMap;public class TreeMapDemo { public static void main(String[] args) { TreeMap treeMap = new TreeMap(); tree...原创 2021-12-23 07:45:00 · 299 阅读 · 0 评论 -
Java Map之Hashtable实现类
Hashtable作为古老的实现类,线程安全,执行效率低 Hashtable不能存储null的key-value,即不能存储空值 注意: Hashtable的"table"中"t"为小写import java.util.Hashtable;public class HashtableDemo { public static void main(String[] args) { Hashtable<String,Integer>...原创 2021-12-22 20:08:13 · 423 阅读 · 0 评论 -
Java HashMap源码分析
这里我们直接截取jdk中的源码进行分析: final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; if ((tab = table) == null || (n = tab.length) == 0) /原创 2021-12-22 17:45:00 · 101 阅读 · 0 评论 -
Java HashMap的底层实现原理
一.Java HashMap的底层实现原理(以jdk7为例)1.HashMap map = new HashMap(); 在实例化以后,才在底层创建了一个长度为16的一维数组 Entry [] table2.map.put(key1,value1); 首先,调用key1所在类的hashCode()计算key1的哈希值,此哈希值经过某种算法计算之后,得到在Entry数组中的存放位置 如果此位置上的数据为空,则此时的key1-value1添加成功 ① 如果此位置上..原创 2021-12-22 13:24:36 · 1804 阅读 · 0 评论 -
Java Collection之Map接口概述及常用方法示例
一.Map实现类的结构 Map为双列数据,存储key-value对(即键值对)的数据,类似于高中学习的函数: y = f(x) HashMap: 作为Map的主要实现类 线程不安全,效率高,可以存储null的key和value LinkedHashMap: 保证在遍历map元素时,可以按照添加的顺序实现遍历 原因: 在原有的HashMap底层结构的基础上,又添加了一对指针,指向前一个元素和后一个元素,因此可以实现按照添加的顺序遍历 对...原创 2021-12-22 13:24:11 · 257 阅读 · 0 评论 -
Java foreach循环(增强for循环)
1.foreach循环概述: JDK5.0之后新增foreach循环迭代访问Collection和数组 遍历操作不需获取Collection或数组的长度,无需使用索引访问元素 遍历集合的底层调用Iterator迭代器完成 2.申明格式:for(Person person : persons){ System.out.println(person); }说明: Person为需要遍历的元素类型 person为遍历后自定义元素的名称,将所...原创 2021-12-20 22:16:02 · 1276 阅读 · 0 评论 -
Set中关于equasl()和hashCode()方法的重写
向 Set中添加的数据,其所在类一定要重写hashCode()方法和equals()方法 要求: 重写的hashCode()和equals()尽可能保持一致性,即"相同元素必有相等的散列码" 1.自定义类中默认没有重写hashCode()方法,使用时是回去调用Object类中的hashCode()方法public native int hashCode(); //默认取得的是对象在内存中的地址 //所new出来的对象的地址都不同...原创 2021-12-20 15:15:00 · 393 阅读 · 0 评论 -
Set不可重复性的理解
Set中不可重复性保证添加的元素按照equals()判断时,不能返回true,即: 相同的元素只能添加一个 Set添加元素的过程: 以HashSet为例: 我们向HashSet添加元素a,首先调用a所在类的hashCode()方法,计算a的哈希值,此哈希值接着通过某种算法计算出在HashSet底层数组中存放位置(即为索引),接着判断数组在此位置上是否有元素 如果此位置上有没有其他元素,则a直接添加到此数组中相应的索引位置上 ① 如果此位置上有其他元素b(...原创 2021-12-20 08:45:00 · 627 阅读 · 0 评论 -
HashSet的无序性的理解
无序性不等于随机性 import java.util.HashSet;public class HashSetDemo { public static void main(String[] args) { HashSet set = new HashSet(); set.add(456); set.add(123); set.add("cc"); ...原创 2021-12-19 23:30:58 · 355 阅读 · 0 评论 -
Collection 之Set接口概述及常用方法
一.Set接口的概述 Set接口是Collection的子接口,未额外提供自己的方法,即使用的方法为Collection中的方法 Set不允许包含相同的元素,即不可重复性 如果试加入两个相同元素,则加入失败 Set判断是否相等 不适用 == ,而是使用equals()方法二.Set接口的实现类 HashSet 无序 LinkedHashSet LinkedHashSet作为HashSet的子类,在添加数据时,每个...原创 2021-12-19 23:30:39 · 872 阅读 · 0 评论 -
Java Collection 之List接口概述及常用方法
一.List接口概述 在List接口中值可重复 含有三个常用的实现类: ArrayList LinkedList Vector List接口中含有索引值,因此含有get()方法,可以获取属性 二.List常用类及方法介绍1.ArrayList实现类 底层为数组结构,因此在ArrayList中查询快,但是添加/删除时需要移动大量元素,效率低 继承自AbctractList,实现了List接口 允许nul原创 2021-12-19 19:01:50 · 388 阅读 · 0 评论 -
Java 集合概念及常用方法
一.集合与数组1.集合与数组存储数据概述 集合与数组都是对多个数据进行存储操作的结构,简称Java容器 说明: 此时的存储主要是指内存层面的存储,不涉及持久化存储2.数组存储的特点 数组一旦初始化后,长度确定,不可更改 数组一定定义好之后,元素的数据类型确定,因此只能操作指定数据类型的数据 如: String [] arr; int [] arr1; Object [] arr2;3.数组存储的弊端 初始化后,...原创 2021-12-15 00:44:41 · 349 阅读 · 0 评论