JAVA 数据结构 技术教程文章

java-将一种数据结构与另一种数据结构进行比较,导致运行时间超过50分钟【代码】

我正在编写的代码将读取一个文本文件(每行一条推文),并遍历每条推文,将其与英语单词列表进行比较,以查看该单词是否拼写错误. 因此,还可以从文本文件中读取英语单词列表,然后将其存储在列表中.当我单独运行此代码时,它的运行时间不到一秒钟.当我运行用于将1,000,000条Tweet的每个单词存储在tweet文件中(无需检查拼写)的代码时,它将每个单词及其频率存储在HashMap< String,Integer>中.在20-30秒左右. 但是,当我添加一行以检查该单词的...

Java API是否具有表示层次结构的数据结构

我有两节课.一个解释命令,然后将这些命令发送到另一个执行它们的类.然后,我希望执行命令的类能够将执行结果发送回解释器类.问题在于这些结果本质上是分层的. 现在,我在Java API中唯一可以让我做到这一点的就是DOM.我真的不想在DOM上乱七八糟,创建一个新文档,然后将其发送回另一个类.看起来好像是一个大问题.还有什么我可以用的吗?解决方法:如果您仅可以创建一个由节点组成的类,您真的需要专门的树数据结构吗?只需使用类中的对象(...

Java之路---Day17(数据结构)【图】

2019-11-04-23:03:13 目录:1.常用的数据结构2.栈3.队列4.数组5.链表6.红黑树 常用的数据结构:包含:栈、队列、数组、链表和红黑树 栈:栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其 他任何位置进行添加、查找、删除等操作特点:1.先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。例如,子弹压进弹 夹,先压进去的子弹在下面,后压进去的子弹...

java-JAXB无休止的数据结构,递归绑定?【代码】

s在开始一个项目之前,我想在这里简短说明. 如果我有这样的结构:<root> <a><a><a><a><a/></a></a></a><a></a> </a>一个元素可以容纳一个元素,而这个元素无限深. 我是否只写了一个A类,然后给它一个List作为成员? JAXB会自动魔术吗?还是这种结构不可能?解决方法:是的,您可以拥有以下内容:@XmlAccessorType(XmlAccessType.FIELD) public class A {private List<A> a;}您的JAXB (JSR-222)实现将正确地将其封送. 相关例子 > How to ...

数据结构学习--Java栈和队列【代码】

栈:先进后出 队列:先进先出 都是数组存放,但是删除的时候不是删除了数组中的数据,而是使用增加游标标识的方式实现删除,“游标标识--”完成删除操作,查看的时候,也不是直接查看栈和队列的数组元素,而是使用游标的方式向外查看。 栈的实现 package com.example.deer;public class MyStack { private long[] arr; private int top; /** * 默认构造函数 */ public MyStack(){ arr = new long[10]; ...

数据结构学习--Java简单排序【代码】

冒泡排序需要元素每次遍历都从最底部向上冒泡,找到适合的位置后,该位置之后的元素继续向上冒,这样一趟排序结束后,将冒出最大或者最小值。 选择排序需要元素从0号位开始向上遍历一遍,并将最小值放到0号位上,下一次遍历则开始处理1号位元素,以此类推。(选择排序要比冒泡排序效率要高一些) 插入排序需要元素初始时从1号位开始,向后遍历,从比角标小的位置开始对比,遇到比角标元素大的值就将角标前的数组元素后移(该过程不断...

使用java语言实现一个队列(两种实现比较)(数据结构)【代码】【图】

一.什么是队列,换句话说,队列主要特征是什么? 四个字:先进先出 六个字:屁股进,脑袋出 脑补个场景:日常排队买饭,新来的排在后面,前面打完饭的走人,这就是队列; OK,思考一个问题,我为什么写了两种实现,它们的区别是什么,哪个性能更好一些? 我觉得学习一定要带着问题来学习; 二.队列的两种实现 1.数组队列 数组队列比较简单,基于之前写的动态数组所实现的,基本方法都是根据队列的特性从而选择性的调用动态数组的方...

java-是否有像ListHashMap这样的数据结构?

我一直在尝试找到一种数据结构,该结构将: >让我检查O(1)时间(HashSet)中是否有重复项,>保留插入顺序,并且>请允许我获得该有序列表的子集. 我找到的最接近的东西是LinkedHashSet,但是由于没有实现List接口并允许我在其上调用List函数(例如subList)而无法实现.为什么找不到这样的结构是有原因的?我将实现自己的LinkedHashSet版本,但改用ArrayList(与由链接列表支持的LinkedHashSet相反).我还从org.antlr.misc库中找到了OrderedHash...

数据结构——java实现队列【代码】

顺序队列: 概念:队列是一种先进先出的线性表,只允许在一端插入,另一端删除。允许插入的一端称为队尾,允许删除的一端称为队头 顺序队列的实现: 1 import org.junit.jupiter.api.Test;2 3 /**4 * 顺序队列5 * @author wydream6 *7 */8 9 public class QueueSequence { 10 11 private String[] arr;//队列数组 12 private int end=0;//队尾标志 13 14 //向队列中添加元素 15 public void push(Str...

Java数据结构-ArrayList最细致的解析笔记【代码】【图】

ArrayList是一个类,这个类有一个数组参数elementData,ArrayList集合中的元素正是保存在这个数组中,它继承了数组查询的高性能,参考第3篇。ArrayList还封装了很多方法,便于对数组中的数据进行操作处理,其中就包括上一篇说的扩容,建议先理解第3篇数组。 扩容原理 在eclipse中调试以下代码,如下设置四个断点,打开调试视图。public static void main(String[] args) {List list = new ArrayList();System.out.println("断点1")...

java-为什么对于数组/堆栈/队列和其他数据结构,Big O标记中没有最好的情况?

我正在浏览这份备忘单https://www.packtpub.com/sites/default/files/downloads/4874OS_Appendix_Big_O_Cheat_Sheet.pdf,我想知道为什么网站上没有提到最佳案例.为什么只有普通情况和最坏情况?解决方法:主要是出于相同的原因,您购买了汽车保险或医疗保险,但不购买中奖彩票,或者我是健康保险:防范异常(或恶意)的重大下行异常事件是很有价值的,但是没有必要“防御”类似的上涨事件. 第二个原因是,与最坏情况的保证(没有输入会触发该...

Java数据结构之根据输入判断素数【代码】

(1)break 跳出本层循环,不再执行本循环(结束当前的循环体) (2)continue 跳出本次循环,继续执行下次循环(结束正在执行的这一次循环,进入下一次循环) (3)return 程序返回,不再执行下面的代码(结束当前的方法,直接返回) import java.util.*; public class isPrime {public static boolean prime(int N){if(N<2){return false;}for(int i=2;i<N;i++){if(N%i==0){return false;//return是直接结束当前的方法,不再继续执行}...

java-在数据结构中找到最大值最小值和最大键值【代码】

我有一个存储大量任务的系统.每个任务具有以下参数:Time t Priority p 每个任务都有独特的时间.这意味着2个任务不能具有相同的Time参数.但是,优先级不是唯一的.多个任务可以具有相同的优先级. 我需要设计一个可以处理四种查询的系统.每种查询的可能性均等.以下是查询的类型: > UpdateTask(t,p)该查询希望系统将在时间t的任务优先级设置为优先级p.如果系统中不存在该任务,则会创建一个新任务.如果任务存在,则更新其优...

数据结构之堆与Java实现【代码】【图】

一、堆 1.堆的概念 堆时一个数组,它可以被看成一个近似的完全二叉树。树上的每一个结点对应数组中的一个元素 。除了树的最底层外,该树是完全充满的,底层不满时从左往右填充。2.堆的性质 2.1 堆的高度 把堆看作一颗树,则堆中某个结点的高度就是该结点到叶结点最长简单路径上的边的数目。如此一来,堆的高度就是堆顶到叶子节点的最长简单路径上的边的数量。也即lg(N)lg(N)lg(N),之后我们可以发现,堆结构上的一些基本操作运行时间...

在Java中为以下数据选择理想的数据结构【代码】

我必须在下面为我的需要选择一种数据结构,我在解释条件,其中包含以下值abc,def,rty,ytr,dft which all are map to row R1B1 (actully key is combination of R1+B1) abEERc,dFFFef,rGGty which all are map to row R1B2 (actully key is combination of R1+B2)KEY VALUE abc,def,rty,ytr,dft ---> R1B1 abEERc,dFFFef,rGGty ---> R1B2现在,举例来说,如果我得到ytr,那么我将能够检索R1B1或者,假设我...

java-双向映射的最佳数据结构

我想要一个从键映射到对象,反之亦然的数据结构(与仅在单个方向上映射的HashMaps不同.)一个想法可能是将HashMap存储在其内部以进行反向查找,但这将是一种低效的方法. 双向映射的最佳实现是什么?解决方法:最简单的想法:包装器类包含2个映射,第二个包含交换的键/值.您将保持O(1)的复杂性,并且将仅使用稍微多一点的内存,因为您将(可能)保留对对象的引用.

java 数据结构 用数组实现队列【代码】【图】

代码内容1 package com.structure;2 3 import java.util.Scanner;4 5 /**6 * @auther::95277 * @Description: 数组模拟队列8 * @program: jstl29 * @create: 2019-10-05 08:5810 */11 public class ArrayQueueDemo {12 public static void main(String[] args) {13 Scanner scanner = new Scanner(System.in);14 //测试15 ArrayQueue queue = new ArrayQueue(3);16 char key = ; //接受...

Java 数据结构----稀疏数组【代码】【图】

|--适用场景 当一个数组中有大量重复数字的时候可以使用稀疏数组来压缩这个数组,从而减少对资源的耗费 |--笔记 |--代码1 package structure;2 3 /**4 * @auther::95275 * @Description: 稀疏数组6 * @program: news_chapter06_027 * @create: 2019-10-01 17:268 */9 public class SparseArry { 10 public static void main(String[] args) { 11 //创建一个原始的二维数组 11*11 12 // 0:代表没有棋...

java – 地图数据结构的地图【代码】

MultiValueMap类(Apache commons集合)使得使用值为Collections的Map变得容易.我正在寻找一个类,它可以很容易地使用Map,其键是对象,值是Maps. 我使用的是Java 1.4,因此无法使用Google Collections或泛型.解决方法:地图地图实际上是没有单根节点的树型结构(以及地图地图的地图……). 您可以查看广泛用于实现树结构的Composite pattern(如果它们的组件具有相同的类型,而不是我认为的情况). 另一种解决方案是实现简单的域模型.阅读起来...

在Java中创建类似数据结构的结构【代码】

我是Java的新手,我正在尝试找到一种方法来存储C中的结构信息.例如,我希望有一个程序雇佣员工.它将从用户获取名字,姓氏和身份证号码并存储它.然后,用户可以根据条件查看该信息(例如,如果数据库有超过1名员工).有人建议这样做的最好方法吗?解决方法:C中的结构就像Java中的类一样,功能更强大,因为Java中的类可以包含方法,而C可以??包含.您创建一个新类.例如 :class Employee {private String name;private int code;// constructorp...