Matlab 2008b才开始引入containers.Map,这是Matlab唯一的数据结构(这里的数据结构是指自带一定逻辑性的数据结构,不包括普通数据类型)。如果要有其它,比如Queue、Set等数据结构,只能自己编写一个。File Exchange上有不少人做过这个工作,我也写过Queue、List、Vector的Matlab对象。不过Matlad的面向对象编程效率极低,这种方法只能用于不太注重效率的场合。解决这个问题的另外一个方法是使用Java对象。

Matlab 6.0开始集成Java,自此可以很方便地使用Java的数据结构类型。跟数据结构相关的是java.util,里面有超过20个数据结构类型,这里有详细的类型的介绍。而这其中常用的有下面几个:

•Set类:指一个集合,其中不允许有重复元素。根据具体的实现方法,Matlab可以使用以下类型: ◦EnumSet:集合元素类型需要一致;速度最快

◦HashSet:hash表;速度也比较快

◦LinkedHashSet:hash表,但元素之间根据插入顺序链接;比Hash表慢

◦TreeSet:红黑树实现的Set类,速度相对较慢;

•List类:指一个顺序列表 ◦Vector:一个容量可变的数组向量

◦Stack:后进先出,栈

◦LinkedList:链表

◦ArrayQueue

◦PriorityQueue:优先树

•Map类:指一个从keys到values的映射关系 ◦EnumMap:keys的类型一样,和EnumSet类似

◦HashMap:利用hash表保存

◦HashTable:线程安全的HashMap

◦TreeMap:利用红黑树实现的Map

◦LinkedHashMap:一个HashMap,但元素之间根据插入顺序互相链接。

使用方法很简单。不需要对Matlab做任何配置。比如下面定义一个HashMap:

map = java.util.HashMap;

然后对map的操作可参考Java文档对HashMap对象的描述,或者可通过methodsview(map)查看map可用的函数。

最后还是需要说下效率。唯一可以用来对比的只有Matlab内置的containers.Map和与Java对象HashMap。测试发现,containers.Map的效率优于HashMap,但只快约10%。

Java数据结构类如何使用_Matlab如何使用Java的数据结构类型相关推荐

  1. java工具类怎么写_常用的Java工具类——十六种

    常用的Java工具类--十六种 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选 ...

  2. java 匿名类 实现接口_细谈 Java 匿名内部类 【分别 使用 接口 和 抽象类实现】...

    1.前言 匿名内部类是什么东西? 没有名字的内部类就是匿名内部类. 什么场景使用? 匿名内部类适合创建那种只需要一次使用的类. 这是个很有用的东西,可想而知,如果不使用匿名内部类,哪些只需要使用一次的 ...

  3. java 比较器类_高级编程之(Java常用类(Java比较器))

    1.使用背景: 说明:Java中的对象,正常情况下,只能进行比较 == 或 !=.不能使用 > 或 < 但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小. 如何 ...

  4. Java Scaner类详解_动力节点Java学院整理

    Java.util.Scanner是Java5.0的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都 ...

  5. java 枚举类 int_【转】掌握java枚举类型(enum type)

    原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...

  6. java image类的值_关于在java中保存image类型的字段的问题

    有一个表test,其字段image是image类型的.在java中可以用如下的方法保存:Filefile=newFile("src/down.gif");InputStreamin ...

  7. java枚举类循环_(转载)java 枚举 循环遍历以及一些简单常见的使用

    本文转载自:http://blog.csdn.net/qq_27093465/article/details/51706076 作者:李学凯 什么时候想用枚举类型: 有时候,在设计一个java mod ...

  8. java在一个类里实现存款_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  9. java一个类可以同时被访问吗,Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?...

    public classSyncMethod {public synchronized voidsyncMethod2() {try{ System.out.println("@@@@@@@ ...

最新文章

  1. 怎样设置rotacast插件_百度克星、16倍速看视频,这5个谷歌插件简直太会玩了!...
  2. mui 使用LocalStore记住用户密码方法
  3. 第13章:项目合同管理--章节真题
  4. CodeForces - 1362E Johnny and Grandmaster(贪心+模拟)
  5. mysql 5.7.21 主从_Mysql 5.7.21 设置主从库同步
  6. Java面试你必须要知道的那些知识,面试建议
  7. 一文读懂Git工作流
  8. centos 字体的修改
  9. 高并发架构解决方案总结
  10. 计算机关键性检测的部件是,试论计算机硬件关键技术的若干问题分析
  11. 3998. 变成1-AcWing题库
  12. 面向对象语言-反射机制
  13. uni-app完整实现小程序获取用户信息
  14. nekohtml的简单使用
  15. ENVI裁剪遥感图像
  16. Microsoft Visual Studio 2003 2005 2008 2010 2012 下载
  17. 怎样来实现流量削峰方案
  18. Linux线程同步机制四--信号量sem
  19. android学习笔记----ListView和各种适配器简介
  20. 数学建模美赛O奖论文研读启示录——从模仿开始

热门文章

  1. shell测试命令test、[ ]、[[ ]]
  2. 30_栈的定义.swf
  3. Redis info参数总结
  4. jenkins 反序列化漏洞 cve-2017-1000353
  5. linux shell 布尔运算
  6. golang range 遍历读写数据问题
  7. linux wget下载整个ftp目录(含子目录)
  8. linux系统内存执行elf的多种方式
  9. linux c 字符串函数 replace indexOf substring 实现
  10. python 函数参数类型检查