zoukankan      html  css  js  c++  java
  • C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举

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

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

  • 相关阅读:
    Linux 中国镜像
    VMWare 安装 Debian 9
    Linux 安装Docker compose 快速方法
    Nginx on Docker 配置
    Docker 中配置Nginx
    Nginx IPV4 问题
    VMWare中CentOS 7 配置 XShell连接
    在CentOS 7 中安装Docker
    Docker for Windows 和虚拟机VMWare共存方案
    Nginx 配置多个站点
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3224616.html
Copyright © 2011-2022 走看看