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

简介:

数据类型:

  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
        }
     }
复制代码

 

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

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/p/3224216.html

相关文章
|
9天前
|
消息中间件 前端开发 Java
java学习路径
【4月更文挑战第9天】java学习路径
17 1
|
23天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
24 0
|
9天前
|
设计模式 前端开发 安全
Java是一种广泛使用的编程语言,其学习路径可以大致分为以下几个阶段
【4月更文挑战第9天】Java是一种广泛使用的编程语言,其学习路径可以大致分为以下几个阶段
14 1
|
6天前
|
Java 存储
键值之道:深入学习Java中强大的HashMap(二)
键值之道:深入学习Java中强大的HashMap
10 0
键值之道:深入学习Java中强大的HashMap(二)
|
6天前
|
存储 Java 编译器
Java集合丛林:深入了解集合框架的秘密
Java集合丛林:深入了解集合框架的秘密
11 0
Java集合丛林:深入了解集合框架的秘密
|
8天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
25 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
9天前
|
Java BI
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
|
20天前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
30 1
|
27天前
|
前端开发 Java 数据库连接
五年Java学习心路历程
五年Java学习心路历程
33 0
|
28天前
|
缓存 NoSQL Java
java中复杂业务情况下的集合操作(增减集合同步数据)
java中复杂业务情况下的集合操作(增减集合同步数据)
26 0