C#与Java对比学习:数据类型、集合类、栈与队列

C#集合类(数据结构) 一、选择数据结构 1)线性容器 List数组/Stack/Dequeue按需求模型选择即可,LinkedList是双向链表增删修改快. 需要有序数组SortList线性排序容器都可以;如果既需要查找快又需要频繁修改那么可以用List记录索引,用LinkedList存储。 2)二叉树类型容器 SortedDictionary可以提供二叉树类型插入删除查找都比较折中的键值对容器。 Sort 阅读详情

数据类型:

  C#:String与StringBuilder

Java:String与StringBuffer


第一个不习惯是string的第一个字母必须大写了。

第二个不习惯是int得写成Integer了,虽然可以定义int i=0,但是对于泛型等用法必须ArrayList<Integer>。


常用集合类比较:

C#  :HashTable         List<T>                                                                Dictionary<T,K> 

Java:HashTable         List(包括:ArrayList<T>,LinkedList<T>)             Map<T,K>(包括:HashMap<T,K>,SortedMap<T,K>)

                                   Set(包括:HashSet<T>,   SoredSet<T>)


Set:不能包含重复的元素;

List:可以包含重复的元素。

集合的类还是挺多的,比较的我头差点都大了,最后才找出这种简单的对应关系。


Stack和Queue

C#  :Stack<T>  Queue<T>

Java:Stack<T>   Queue(包括四个:LinkedBlockingQueue<T>、ArrayBlockingQueue<T>、PriorityBlockingQueue<T>、DelayQueue<T>)


Statck用法基本一致,Queue用法与名称基本上差天与地,下面有详细解答。


Java Queue方法名称和C#不同:

Java Queue 的相关方法:

add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
offer 添加一个元素并返回true 如果队列已满,则返回false
poll 移除并返问队列头部的元素 如果队列为空,则返回null
peek 返回队列头部的元素 如果队列为空,则返回null
put 添加一个元素 如果队列满,则阻塞

take 移除并返回队列头部的元素 如果队列为空,则阻塞

更详细的参考文章链接:http://www.cnblogs.com/end/archive/2012/10/25/2738493.html


迭代语法:

C#  :foreach(object o in objList){}  实现迭代的接口名称为:IEnumerable

Java:foreach(object o : objList){}   实现迭代的接口名称为: Iterable

基本上一致,今天看的内容,基本就这么多了,所以就写到这里了,这么点内容,光比较整理,花了好几个小时,真悲催。

数据库与C#数据类型对比 个人制作的纯绿色查询小工具,网罗了所有的数据类型的对比转换实例! 立即下载

相关推荐

WorldPop数据集

WorldPop数据集介绍

qq_43874102的博客 1万+

[Java 并发编程] 21. 阻塞队列

文章目录一、阻塞队列(Blocking Queues)二、BlockingQueues的实现 一、阻塞队列(Blocking Queues) Blocking Queues 是当你尝试从一个空队列取出一个元素时、或尝试从一个满队列做插入一个元素时会被阻塞的队列。 包含: 一个线程尝试从空队列做出队操作时会被阻塞,直到其他线程插入一个元素至队列中。 一个线程尝试从满队列做入队操作时会被阻塞,直到其他线程消耗队列中的一个或多个元素、或清空队列。 Java 5 提供了 java.util.concurr

孙广明的博客 413

相机标定原理与张氏标定法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

heeweii的博客 2280

java源码-DelayQueue

开篇  DelayedQueue是一个用来延时处理的队列,delayQueue其实就是在每次往优先级队列中添加元素,然后以元素的delay/过期值作为排序的因素,以此来达到先过期的元素会拍在队首,每次从队列里取出来都是最先要过期的元素 所谓延时处理就是说可以为队列中元素设定一个过期时间, 相关的操作受到这个...

weixin_34249678的博客 210

告别IMEI!手把手教你用UUID实现Android设备唯一标识(兼容Android 10-13)

本文详细探讨了在Android 10及以上版本中,如何构建合规且高可用的设备唯一标识方案以替代被限制访问的IMEI。文章深入分析了Android设备标识符的演变,并提供了基于UUID/GUID的完整实现策略,包括生成算法、多级持久化存储方案(如MediaStore)、权限处理以及版本兼容性实践,帮助开发者应对Android 10-13的隐私政策变化。

weixin_28339967的博客 573

【干货】S7-PLCSIM Advanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

【干货】S7-PLCSIM Adavanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

handinvv的博客 5万+

【无标题】延时队列的实现方案

二、延时队列的实现 我个人一直秉承的观点:工作上能用JDK自带API实现的功能,就不要轻易自己重复造轮子,或者引入三方中间件。一方面自己封装很容易出问题(大佬除外),再加上调试验证产生许多不必要的工作量;另一方面一旦接入三方的中间件就会让系统复杂度成倍的增加,维护成本也大大的增加。 1、DelayQueue 延时队列 JDK 中提供了一组实现延迟队列的API,位于Java.util.concurrent包下DelayQueue。 DelayQueue是一个BlockingQueue(无界阻塞)队列,

wang的专栏 316

数学史学习资料:史前数学

著名物理学家伽莫夫(宇宙大爆炸理论以及核聚变理论的提出者)在他的科普书《从1到无穷大》中举了这样一个例子。两个原始部落的酋长比赛,看谁说的数字大。第一个酋长说了三,第二个酋长想了半天,然后说你赢了。你今天听起来觉得这两个人真可笑,至少说出四,岂不就赢了?但是对这两位酋长来讲,所拥有的东西就很少超过三个,比三个多的东西他们就觉得没有必要数清楚了,就用许多来形容了。也就是说,他们生活的环境限制了他们的认知。

howard2005的专栏 902

如何通过DelayQueue实现延时任务

使用DelayQueue实现延时任务非常简单,而且简便,全部都是标准的JDK代码实现,不用引入第三方依赖(不依赖redis实现、消息队列实现等),非常的轻量级。BlockingQueue即阻塞队列,java提供的面向多线程安全的队列数据结构,当队列内元素数量为0的时候,试图从队列内获取元素的线程将被阻塞或者抛出异常。需要说明的是,这里的while-true循环的延时任务处理是顺序执行的,在订单并发量比较大的时候,需要考虑异步处理的方式完成订单的关闭操作。当用户下单的时候,将订单下单任务放入延时队列。

Java_ttcd的博客 614

宇树G1二次开发资料汇总

宇树科技G1是一款29自由度的商业级人形机器人,配备NVIDIA Jetson Orin NX计算平台和完整SDK生态。本文系统介绍了G1的硬件架构、29个关节配置、传感器外设、双计算单元设计等关键信息,并详细解析了软件生态体系,包括C++/Python SDK、ROS2接口、仿真工具和AI框架。开发者可通过DDS通信实现高层运动控制或底层关节级精确控制,支持快速二次开发。文档提供了网络配置、接口调用示例等实用指南,帮助开发者高效利用该平台进行人形机器人应用开发。

m0_47999117的博客 1312

Python学习第1天:初识Python

Python 作为目前最流行的编程语言之一,凭借其简洁优雅的语法和强大的生态系统,成为了无数开发者的首选。本系列文章将带你从零基础入门,逐步掌握 Python 编程的核心技能。今天我们先来认识 Python,并安装好开发环境。Python(英式发音:/ˈpaɪθən/;美式发音:/ˈpaɪθɑːn/)是由荷兰人吉多·范罗苏姆(Guido von Rossum)发明的一种编程语言,是目前世界上最受欢迎和拥有最多用户的编程语言。

tigerhhzz的博客 432

面试官:生成订单 30 分钟未支付,则自动取消,该怎么实现?

这样可以看出定时轮由个 3 个重要的属性参数,ticksPerWheel(一轮的 tick 数),tickDuration(一个 tick 的持续时间)以及 timeUnit(时间单位),例如当 ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。结合以上两个特性,就可以模拟出延迟消息的功能,具体的,我改天再写一篇文章,这里再讲下去,篇幅太长。因此,方案二不是太推荐。对上述的任务,我们给一个专业的名字来形容,那就是延时任务。

m0_71777195的博客 236

QtQuick QML教程(2):qml语法介绍

​ qml一个普通的文本文件,后缀是.qml, 一个qml文件主要由两部分组成:(1) import语句 :这个就像C++中的头文件, 使用 import 导入qml需要的相关模块,可以查询Qt文档进行导入,注意每个版本的Qt模块声明可能都不同,相比于QWidget项目,QtQuick的变动是很大的;(2) QML对象树 :根对象是Window, 然后可以在Window中添加各种控件,例如按钮,文本,菜单等。

琅嬛福地 550

C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33898876的博客 141

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java stack 数据类型_C#与Java对比学习:数据类型、集合类

数据类型:C#:String与StringBuilderJava:String与StringBuffer第一个不习惯是string的第一个字母必须大写了。第二个不习惯是int得写成Integer了,虽然可以定义int i=0,但是对于泛型等用法必须ArrayList。常用集合类比较:C# :HashTable List ...

weixin_30717635的博客 192

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java中 t的用法_java t的用法

C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举数据类型:C#:String与StringBuilderJava:String与StringBuffer第一个不习惯是string的第一个字母必须大写了。第二个不习惯是int得写成Integer了,虽然可以定义int i=0,但是对于泛型等用法必须ArrayList文章路过秋天2016-05-161542浏览量C#与Java对...

weixin_42561192的博客 1545

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

用栈实现队列和用队列实现栈

第一 队列和栈的了解 栈 -- 先进后出(FILO—First-In/Last-Out) 队列 -- 先进先出(FIFO—first in first out) 对应的方法 栈 入栈:s.push(x) 出栈:s.pop() 访问栈顶:s.top() 判断栈空:s.empty() 访问栈中的元素个数:s.size() 队列  入队:q.push(x) 出队:q.pop(...

SmileTimLi的博客 2071

栈与队列

栈与队列 栈 栈是限定仅在表尾进行插入和删除操作的线性表。 栈的抽象数据类型 ADT Stack { Data 元素具有相同的类型,相邻元素具有前驱后继关系。 Operation InitStack (&S) (构造空栈 ) 操作结果:构造一个空栈S。 DestroyStack(&S) (销毁栈结构) 初始条件:栈S已存在。 操作结果:栈S被销毁。 ClearStack (&S) (栈清空) 初始条件:栈S已存

wnhyang的博客 646
上一篇: 子div在父div居底【已使用】
下一篇: C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
HNFXS985
博客等级 码龄14年 219粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值