Java稀疏数组 定义 稀疏数组:数组中的大部分元素值都没有使用(或者都为0),在数组中仅有少部分的空间使用,造成了内存空间的浪费。 使用新的压缩的方式表示原来数组的方式为稀疏数组。 为什么要使用稀疏数组? 为了节省内存空间。 稀疏数组实现原理 引入应用场景 开发人员需要开发一个五子棋的游戏,为了实 ...
分类:
编程语言 时间:
2019-12-01 13:33:52
阅读次数:
69
一、概述 List继承了Collection,是有序的列表。 可重复数据 实现类有ArrayList、LinkedList、Vector、Stack等 ArrayList是基于数组实现的,是一个数组队列。可以动态的增加容量! LinkedList是基于链表实现的,是一个双向循环列表。可以被当做堆栈使 ...
分类:
其他好文 时间:
2019-11-22 00:52:27
阅读次数:
161
# java >集合List去重总结 List是实际开发中非常常用的集合,此处简单总结lsit的去重 观察源码: 继承父类Collection:public interface List extends Collection {} 最常用的实现类:public class ArrayList ext ...
分类:
其他好文 时间:
2019-11-19 16:57:56
阅读次数:
85
不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。 ...
分类:
编程语言 时间:
2019-11-18 20:38:22
阅读次数:
82
题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 分析: 这道题做法有很多,首先可以创建一个新的数组,遍历原数组两遍,先把奇数依次传入新数组中,再把偶数传入进去,这样可以保 ...
分类:
编程语言 时间:
2019-11-15 18:31:38
阅读次数:
71
题目链接:https://vjudge.net/problem/HDU-1251 题意:给定一系列字符串之后,再给定一系列前缀,对每个前缀查询以该字符串为前缀的字符串个数。 思路: 今天开始学字典树,从入门题开始。用数组实现,count数组表示每个结点出现次数,trie[0]为根节点。插入和查询一个 ...
分类:
其他好文 时间:
2019-11-10 13:43:36
阅读次数:
72
ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。
ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的Array... ...
分类:
编程语言 时间:
2019-11-03 14:25:22
阅读次数:
78
来源:https://www.jianshu.com/p/6b526aa481b1 堆就是用数组实现的二叉树,所有它没有使用父指针或者子指针。 堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的常用方法: 构建优先队列 支持堆排序 快速找出一个集合中的最小值(或者最大值) 在朋友面前装逼 ...
分类:
其他好文 时间:
2019-10-26 19:13:11
阅读次数:
74
问题:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/submissions/ GitHub实现:https://github.com/JonathanZxxxx/LeetCode/blob/master/Class33 ...
分类:
编程语言 时间:
2019-10-23 14:00:06
阅读次数:
117
1.算法思路: (1)将待排序数组分为两份,利用递归将两份数组排好序 (2)将两个有序数组归并成一个有序数组。 实现方法: a.设置两个指针,分别指向两个数组的开头,比较指针所指向的数字,将较小的数字加入一个辅助数组中,指针前移,直到其中一个指针溢出 b.将未溢出的数组剩余的元素加入辅助数组中 c. ...
分类:
编程语言 时间:
2019-10-22 21:56:43
阅读次数:
108