JAVA 数据结构 技术教程文章

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...

Java数据结构 - 面向对象的数组(基于基本类型数组的操作)【代码】

1 import java.util.Arrays;2 3 class MyArray {4 public MyArray() {5 elements = new int[0];6 }7 8 // 获取数组长度的方法9 public int size() {10 return elements.length;11 }12 13 // 往数组的末尾添加一个元素14 public void add(int element) {15 // 创建一个新的数组16 int[] newArr = new int[elements.length+1];17 // 把原数组中的元素复制到...

java – 可以将一系列键映射到值的数据结构【代码】

我试图找到一个数据结构,从一系列值中获取特定值并将其映射到一个键. 例如,我有以下条件: >从1到2.9,我想将它映射到A.>从4到6,我想将它映射到B.>从6.5到10,我想将它映射到C. 我的值为5,我想将其映射到一个键.所以基于上述条件,我应该将它映射到B. Java中是否有任何人可以向我推荐解决问题的数据结构? 目前我使用的哈希表只能将值映射到键.我尝试将值范围映射到哈希表中存在的特定值.但是,我陷入了将值范围映射到特定值的问题.所以...

1065 单身狗 (25 分) java 使用数据结构超时【代码】

import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Map.Entry; import java.util.Scanner; import java.util.Set;public class text1065true {public static void main(String[] args) {Scanner in = new Scanner(System.in);HashMap<Integer, Integer> couple = new HashMap<>();int n = in.nextInt();while (n-- > 0) {int key = in.nextInt();int value = in.nextInt();couple...

java的PriorityQueue的内置迭代器不以任何特定顺序遍历数据结构.为什么?

这是直接来自Java Docs:This class and its iterator implement all of the optional methods of the Collection and Iterator interfaces. The Iterator provided in method iterator() is not guaranteed to traverse the elements of the priority queue in any particular order. If you need ordered traversal, consider using Arrays.sort(pq.toArray()).基本上,我的PriorityQueue工作正常,但是使用自己内置的toString()方...

java – 用于与后端数据结构同步的JTable设计【代码】

我有一个使用表模型从数据结构加载的JTable.数据结构的格式为NavigableMap< Float,NavigableMap< Float,Boolean>>.示例数据为:Table Format:Range f1,v1 f2,v2 f3,v3 f4,v4 12.1-30.2 30,true 32,false 45,true 50,false 30.2-45.6 30,true 32.4,true 45,true 50.1,true以上数据格式在DS中表示为DS Format: Key Value 12.1 <<30,true>,<32,false>,<45,true>,<50,false>> 30.2 <<30,true>,<32.4,true>,<45,true>,<50.1...

Java树数据结构?【代码】

是否有一个良好的可用(标准Java)数据结构来表示Java中的树? 具体来说,我需要代表以下内容: >任何节点上的树都可以有任意数量的子节点>每个节点(在根之后)只是一个字符串(其子节点也是字符串)>我需要能够在给定表示给定节点的输入字符串的情况下获取所有子节点(某种列表或字符串数??组) 是否有可用的结构或我是否需要创建自己的结构(如果是这样的实现建议会很好).解决方法:这里:public class Tree<T> {private Node<T> root;publ...

Java数据结构之LinkedList、ArrayList的效率分析【代码】【图】

Java数据结构之LinkedList、ArrayList的效率分析前言: 在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实测一下。 先了解一下List ? List列表类,顺序存储任何对象(顺序不变),可重复。 ? List是继承于Collection的接口,不能实例化。实例化可以用:ArrayList(实现动态数组),查询快(随意访问或顺序访问),...

java – 哈希映射的多映射的更好的数据结构【代码】

我选择的数据结构设计被证明是非常难以执行,所以我不希望你的专家意见如何执行它,我希望你能为我正在尝试做的事情建议一个更自然的数据结构,如下.我在读数据行.每列都是一个变量(Animal,Color,Crop,… – 其中有45个).每行数据都有该列变量的值 – 您事先不知道值或行数.Animal Color Crop ... ------------------------------------- cat red oat cat blue hay dog blue oat bat blue ...

java – 用于存储具有唯一索引的数千个对象的数据结构【代码】

我正在使用Java SAX解析器读取一个巨大的xml文件:http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?format=xml(2.82 MB) 此文件包含数千个“项目”,每个项目都具有“名称”,“级别”等属性.其中一个属性是名为“defindex”的唯一整数标识符.我正在为每个项目创建POJO,上面提到的一些属性为字段(defindex就是其中之一). >我需要通过搜索defindex来大量阅读这些项目对象>我不会改变对象的数据字段 我的问题是:我应该如...

数据结构java(一)类型【图】

1.逻辑结构 指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。 a.线性结构(线性表、栈、队列、字符串、数组) 线性结构是非空集 线性结构有且仅有一个开始结点和一个终端结点 线性结构所有结点都最多只有一个直接前趋结点和一个直接后继结点 b.非线性结构(树、图、多维数组、广义表) 非线性结构是非空集。 非线性结构的一个结点可能有多个直接前趋结点...

java – 支持基于最近访问过的项目的高效启动策略的数据结构【代码】

我需要一个数据结构,以支持最长时间前请求的项目的最有效的启动策略.例如,我有一堆不时要求的物品.当我内存不足时,我想踢出我数据结构中最古老的项目(哈希映射). 我在想像Queue这样的FIFO ds,但我不知道如何处理这种情况:–> a b c d a –>a是最古老和最新的项目.如果再次添加“a”,我需要搜索整个队列来删除它.这是非常低效的,但我想不出任何有效的方法.也许是某种树形结构,将最少访问的树结构保持在顶部? Java中是否有任何这种...

令人困惑的java数据结构

也许标题不合适,但此刻我想不出任何其他标题.我的问题是LinkedList和ArrayList或HashMap和THashMap之间的区别是什么. 是否已经存在用于Java的树结构(例如:AVL,红黑)或平衡或不平衡(链表).如果此类问题不适合SO,请告知我将删除它.谢谢解决方法:ArrayList和LinkedList是List抽象的实现.第一个将列表的元素保存在一个内部数组中,该数组会根据需要自动重新分配,以便为新元素腾出空间.第二个构造了一个双向链表的持有者单元,每个单元都...

菜鸟苦练数据结构---java中栈的自实现(初学者进)【代码】【图】

栈(stack):又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 直接贴代码吧!! /*** * @author springwave**/ public class MyStack<E>{//栈的底层使...

纯数据结构Java实现(6/11)(二叉堆&优先队列)【图】

堆其实也是树结构(或者说基于树结构),一般可以用堆实现优先队列。 二叉堆堆可以用于实现其他高层数据结构,比如优先队列而要实现一个堆,可以借助二叉树,其实现称为: 二叉堆 (使用二叉树表示的堆)。 但是二叉堆,需要满足一些特殊性质: 其一、二叉堆一定是一棵完全二叉树 (完全二叉树可以用数组表示,见下面) 完全二叉树缺失的部分一定是在右下方。(每层一定是从左到右的顺序优先存放)完全二叉树的结构,可以简单理解成按层安放元...

用于快速并发插入的最佳Java数据结构

我的用例如下:我有10个线程同时写入一个数据结构.数据结构中元素的顺序无关紧要.所有元素都是独一无二的.我只会在最后一次从这个数据结构中读取一次. 什么是最适合此目的的本机Java数据结构?从我的阅读,似乎Collections.synchronizedList可能是转到选项?解决方法:I have 10 threads simultaneously writing to one data structure.我认为最好每个线程使用一个单独的数据结构.这样,线程之间不需要同步,而且CPU缓存也更友好. 最后...

java基础-《JAVA语言程序设计与数据结构》笔记【代码】

最近差不多把java语言部分学习了一遍,这里把之前书上做标记的内容记录一下,巩固基础。 一、 类和对象 1. java默认值:引用类型数据域为null,数值类型数据域的默认值是0,boolean类型数据域的默认值为false,char类型数据域的默认值为“\u0000”。 其中,java没有给方法中的局部变量赋默认值。 2. 可见性修饰符:private修饰符只能应用在类的成员上,而public可以用在类或类的成员上。在局部变量上使用修饰符public和private都...

java – LinkedList数据结构,为什么我们需要从不同的构造函数中调用空的默认构造函数

在java.util.LinkedList类中,定义了2个构造函数,默认和参数化接受集合.当我查看实现时,我看到参数化构造函数有this(),基本上是调用默认构造函数. 但默认构造函数为空.所以我很好奇如果这是调用默认构造函数的最佳实践,即使它是空的,或者是否有任何推理.如果我们不调用默认构造函数会发生什么. GrepCode LinkedList implementation解决方法:如果在将来的任何时间扩展默认构造函数,则不必更改其他构造函数. 它告诉我们,扩展构造函数基...

【数据结构】8.java源码关于HashMap【代码】【图】

1.hashmap的底层数据结构 众所皆知map的底层结构是类似邻接表的结构,但是进入1.8之后,链表模式再一定情况下又会转换为红黑树在JDK8中,当链表长度达到8,并且hash桶容量超过64(MIN_TREEIFY_CAPACITY),会转化成红黑树,以提升它的查询、插入效率底层哈希桶的数据结构是数组,所以也会涉及到扩容的问题。当MyHashMap的容量达到threshold域值时,就会触发扩容。扩容前后,哈希桶的长度一定会是2的次方。 1.1 为什么用红黑树 那么为...