![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
------【Java数据结构】
_夜渐凉
_与其临渊羡鱼,不如退而结网
展开
-
去除List集合中的重复值(四种好用的方法)(基本数据类型可用)
最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。 但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢? 试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。当list集...转载 2018-11-02 10:27:52 · 3394 阅读 · 0 评论 -
List去重(数据为对象的情况)及String中的equals()方法和hashCode()方法源码分析
面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固。我们大家都知道,set集合的特点就是没有重复的元素。如果集合中的数据类型是基本数据类型,可以直接将list集合转换成set,就会自动去除重复的元素,这个就相对比较简单。上一篇文章就是基本类型的数据结构去重。如下示例:public class Test { p...转载 2018-11-02 10:37:45 · 479 阅读 · 0 评论 -
java浮点数精度损失原理和解决
我所在的公司近期要做一个打赏的功能,比如说发一张照片其他人可以对这张照片进行打赏,给些小钱。我的工作是负责给客户端下发打赏消息。工作完工之后客户端同学说有个问题,我下发的打赏金额是string类型的,他们觉得double才对。于是我就去找老大问这个能不能改成double类型,老大说这个应该是string才对的,我说金额不是数字么,然后老大笑着说你回去好好想想。。。。。。 (二逼版开头:天...转载 2018-11-07 18:05:14 · 1744 阅读 · 0 评论 -
Java中多个集合的交集,并集和差集
一、交集 java中交集使用 A.retainAll(B) ,交集的结果在集合A中。public class Intersection { @Test public void testSet() { Set<String> set1 = new HashSet<>(); Set<String> set...转载 2018-11-19 23:20:00 · 6053 阅读 · 0 评论 -
Java中字符串数组转 long[]基本类型数组的方法
今天项目前台传到后台的字符串经过截取后是字符串数组,但是但是我想要long类型的数组,查阅多处资料:代码块:Java中字符串数组转long[]类型数组的方法//定义字符串String str = "1,3,6,9,4,2,1,6";//截取字符串String[] strArr = str.split(",");//转换long类型的数组long[] strArrNum = ...原创 2018-12-21 13:59:43 · 14184 阅读 · 2 评论 -
正确使用Map,只需要正确实现hashCode()和equals()就行了吗?
正确使用Map,只需要正确实现hashCode()和equals()就行了吗?恐怕还不行。确切地说,如果使用的是HashMap,那么只需要正确实现hashCode()和equals()就够了。但是,如果换成TreeMap,正确实现hashCode()和equals(),结果并不一定正确。代码胜于雄辩。先看作为key的class定义:class Student implemen...转载 2018-12-26 09:48:44 · 577 阅读 · 0 评论 -
[Google Guava]学习--新集合类型 Muiltset,MultiMap,BiMap
在sun的API中,map是不支持直接存放相同的key的,相同key会被后一个key替代的,但是我们可以通过一些工具包实现这样的功能 ——>Google基于java1.6的类库集合的扩展项目–Guava,其中com.google.common.collect包就支持这样的操作MultiMap场景:当需要实现Map<K, List<V>>或Map&l...原创 2019-07-16 10:56:21 · 484 阅读 · 0 评论 -
如何将自定义的类对象作为key存储到HashMap中?
1,通过Hash算法来了解HashMap对象的高效性 我们先复习数据结构里的一个知识点:在一个长度为n(假设是10000)的线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾依次遍历来查找,这样的平均查找次数是n除以2(这里是5000)。 我们再来观察Hash表(这里的Hash表纯粹是数据结构上的概念,和...原创 2019-08-19 11:28:38 · 2684 阅读 · 0 评论 -
Java Stream - 如何使用Comparator.naturalOrder()
import java.util.Arrays;import java.util.Comparator;import java.util.List;public class Test { public static void main(String... args) { List<Integer> numbers1 = Arrays.asList(3...原创 2019-06-26 16:02:25 · 11202 阅读 · 1 评论