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

 

基本上一致,今天看的內容,基本就這么多了,所以就寫到這里了,這么點內容,光比較整理,花了好幾個小時,真悲催。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM