• 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
            }
         }

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

  • 相关阅读:
    rest framework 认证 权限 频率
    rest framework 视图,路由
    rest framework 序列化
    10.3 Vue 路由系统
    10.4 Vue 父子传值
    10.2 Vue 环境安装
    10.1 ES6 的新增特性以及简单语法
    Django 跨域请求处理
    20190827 On Java8 第十四章 流式编程
    20190825 On Java8 第十三章 函数式编程
  • 原文地址:https://www.cnblogs.com/cyq1162/p/3224216.html
Copyright © 2020-2023  润新知