博客
关于我
C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
阅读量:420 次
发布时间:2019-03-06

本文共 1709 字,大约阅读时间需要 5 分钟。

数据类型:

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

Stack用法基本一致,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#  :void Sum(params int[] list){} 以params 为关键字 

 Java:void sum(int ...list){} 以“...“三个点为关键字

 

枚举,Java的enum还能玩出花样:

  C#  :只能enum设置常量数值

  Java:除了和C#一样的设置常量数值,Java仍保留了特殊类的基本功能,让玩家自己玩;而C#而做了特殊限制。

 

C#与Java字符串转枚举及枚举遍历区别:

C#的转换代码:

    
public 
class Test
    {
        
protected 
void Method()
        {
            A a = (A)Enum.Parse(
typeof(A), 
"
b
");//枚举转换
 
    foreach (string enumName in Enum.GetNames(typeof(A)))
            {
//枚举遍历
            }

        }

        public enum A
        {
            b,
            c
        }
    }

 

Java的转换代码:

 
   
public 
class Test
    {
        
protected 
void method()
        {
            A a = A.valueOf("b");
 
    for (A a : A.values())
            {
//枚举遍历
            }
        }
        
public 
enum A
        {
            b,
            c
        }
     }

 

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

 

你可能感兴趣的文章
Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
查看>>
Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
查看>>
Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
查看>>
Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
查看>>
Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
查看>>
Mysql学习总结(78)——MySQL各版本差异整理
查看>>
Mysql学习总结(79)——MySQL常用函数总结
查看>>
Mysql学习总结(7)——MySql索引原理与使用大全
查看>>
Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
查看>>
Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
查看>>
Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
查看>>
Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
查看>>
Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
查看>>
Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
查看>>
Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
查看>>
Mysql学习总结(9)——MySql视图原理讲解与使用大全
查看>>
Mysql学习笔记 - 在Centos7环境下离线安装Mysql
查看>>
MySQL学习笔记十七:复制特性
查看>>
Mysql学习第一课-mysql的定义及sql语句
查看>>
mysql学号的字符长度_MYSQL--2
查看>>