java 集合操作_Java 集合的操作 个人方法总结
一些小建议:
在使用集合的时候如果不太清楚需求我们可以像对列一样如下:
Queue expres=new ArrayDeque<>();
重新指定类型,来进行更换
Queue expres=new LinkedList<>();
Java库中的具体:
ArrayList
一种可以动态增长和缩减的索引序列
LinkedList
一种可以在任何位置进行高效地插入和除操作的有序序列
ArrayDeque
一种用循环数组实现的双端队列
Hashset
一种没有重复元素的无序集合
Treeset
一种有序集
Enumsel
一种包含枚举类型值的集
Linkedhashset
一种可以记住元素插入次序的集
PriorityQueue
一种允许高效除删除最小元素的集合
HashMap
一种存储键/值关联的数据结构
TreeMap
一种键值有序排列的映射表
EnumMap
一种键值属于枚举类型的映射表
LinkedHashMap
一种可以记住健/值项添加次序的映射表
WeakHashMap
一种其值无用武之地后可以被垃圾回收器回收的映射表
首先两种集合框架
这两种框架大多基于. equals,.hashCode这两个类来判断是否有重复项等,所以或不想按照虚地址来进行比较,则进行重写
@Override//重写hashCode
public int hashCode() {
return Objects.hash(name, age);
}
@Override//重写equals
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return age == user.age &&
Objects.equals(name, user.name);
}Set:元素无序、不可重复的集合 ---类似高中的“集合”
List:元素有序,可重复的集合 ---”动态”数组
通用方法
.isEmpty()//判断是否为空
dates.add(new Date());//用来做添加元素
List:
调用arraylist类,对传入的类型做规定,原来为泛型现在改为Date型
ArrayList dates=new ArrayList<>();
排序的设置,如下
users.sort(new Comparator() {
@Override
public int compare(User o1, User o2) {
return o1.getAge()-o2.getAge();
}
});
//使用lambda表达式users.forEach((i)-> System.out.println(i));
users.sort((i,o)->i.getAge()-o.getAge());//这两种等价,注意只有在List中才有.sort方法
.asList(T... a) 将数组转为集合的方法,返回的是List集合,利用Arrays.asList方法返回的List是不允许add和remove的,这种list的长度不可变,因为底层依然是写数组。
List integers = Arrays.asList(1, 2, 3, 4);
.forEach,java8提供的内部厉遍操作
dates.forEach((j)-> System.out.println(j));
Set:
HashSet 具有以下特点:不能保证元素的排列顺序
HashSet 不是线程安全的
集合元素可以是 null
LinkedHashSet 是 HashSet 的子类,根据元素的 hashCode 值来决定元素的存储位置,但它同时使用链表维护元素的次序,这使得元素看起来是以插入顺序保存的。
LinkedHashSet插入性能略低于 HashSet,但在迭代访问 Set 里的全部元素时有很好的性能。
Set users=new HashSet<>();
Set users=new LinkedHashSet<>();//按照类里面的compareTo接口实现的方法来排序 TreeSet ts = new TreeSet<>();Set users=new TreeSet<>();多种写法,必须在类里面定义
compareTo接口
java 集合操作_Java 集合的操作 个人方法总结相关推荐
- java 集合 接口_Java集合之Collection接口
1 - Java集合介绍 /* 1. 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储. 2. 另一方面,使用Array存储对象方面具有一些弊 端,而 ...
- Java集合学习_Java集合学习(适合新手)
集合框架 由⼀组类和接⼝组成的⼀个体系. Collection 集合框架 最基本的接⼝,⼀个 Collection 可以存储⼀组⽆序.不唯⼀的对象,实际开发中不会直接使⽤ Collection 进⾏开 ...
- java集合总结_java集合小总结
java集合就是一个容器. 1. 集合概述 l 为了保存不确定的数据,或者对象,以及保存具有映射关系的数据. l 所有的集合类都位于java.util包下. 1.1. ...
- java集合继承_java集合继承关系
数组虽然也可以存储对象,但长度是固定的:集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象. 集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 上述类图中, ...
- java集合迭代器_java集合迭代器
一.Java中有一个设计模式是迭代器模式 1.迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 2.迭代器模式概述 Java集 ...
- java族谱设计_Java集合族谱总结
集合族谱核心成员 集合族谱核心成员 所有的集合类,都实现了Iterator接口,这是用于遍历集合中元素的接口:Java集合框架核心是两个类型的容器,一种是集合(Collection),存储单一元素,一 ...
- java set复制_Java 集合系列之三:Set基本操作
1. Java Set 1. Java Set 重要观点 Java Set接口是Java Collections Framework的成员. Set不允许出现重复元素-----------无重复 Se ...
- java concurrentmap原理_Java集合番外篇 -- ConcurrentHashMap底层实现和原理
概述 距离上一次集合篇结束已经过了好久了, 之前说要写一下番外,但是太忙了,总也找不出相对松散的时间,也有点静不下心来,最近花了点时间,于是便有了这篇博客. 在开始之前先介绍一个算法, 这个算法和Co ...
- java dvd集合框架_JAVA 集合框架
1.总览图 总览:(虚线箭头为依赖.虚线空心三角为实现.实线空心三角为继承)关于 UML 图表示可看此链接 Collection: Map: 2.Iterator .Iterable.ListIter ...
- java字符串操作_Java的字符串操作
Java的字符串操作 小型送分题:Java有字符串(String),StringBuffer(字符串缓存),StringBuilder(字符串建造者?)各种实现,究其原因还是历史上的各种坑. 一.不同 ...
最新文章
- 【字符串哈希】【哈希表】Aizu - 1370 - Hidden Anagrams
- java删除有序数组中的重复元素_java去除已排序数组中的重复元素
- 32.210内存的知识
- django手机访问_Django对接支付宝电脑网站、App支付步骤详解!这个框架是真强!...
- mysqli num php_php mysqli_num_rows函数怎么用
- 不要在viewWillDisappear:方法中移除通知
- 使用 Visual Studio 2019 批量添加代码文件头
- 数学基础知识(高精、快速幂、龟速乘……)
- 祁飞机器人_转自祈飞:什么是智能机器人
- Java中的StringBuffer、StringBuilder和包装器类型
- java多线程-线程池
- 设计模式面对面之单例模式
- mysql-innodb笔记和Spring的那些事
- “食物链”的顶端合约ALOKEX 顺势而行一万年太久只争朝夕
- 威金又现!专杀收集整合
- Epsilon-Greedy算法
- 微信视频号视频保存,微信视频号视频下载的方法
- 推荐 5 个精选公众号
- 8月房价上涨城市数量增多 涨幅全线扩大
- Eclipse汉化版本和导入src
热门文章
- 惊艳二重奏!专家这样用开源软件建立监控体系
- Tensorflow保存神经网络参数有妙招:Saver和Restore
- 一个编程指南还有这么多道道儿?
- [技术分享]【DLI跨源】当DLI遇见MongoDB
- 【华为云技术分享】浅谈产品模型(Profile)在程序设计中的作用
- 12.16直播:藏在华为物联网操作系统里的“秘密”
- Linux系统通过FTP进行文档基本操作【华为云分享】
- 华为云EI人脸识别接口初探
- 外国人怎么看祖冲之量子计算机,我国“祖冲之号”量子计算机再次刷新纪录:1.2 小时完成超算 8 年计算量...
- linux 连接 android,linux下android连接真机测试