数据类型:
C#:String与StringBuilder
Java:String与StringBuffer
第一个不习惯是string的第一个字母必须大写了。
第二个不习惯是int得写成Integer了,虽然可以定义int i=0,但是对于泛型等用法必须ArrayList。
常用集合类比较:
C# :HashTable List Dictionary
Java:HashTable List(包括:ArrayList,LinkedList) Map(包括:HashMap,SortedMap)
Set(包括:HashSet, SoredSet)
Set:不能包含重复的元素;
List:可以包含重复的元素。
集合的类还是挺多的,比较的我头差点都大了,最后才找出这种简单的对应关系。
Stack 和 Queue:
C# :Stack Queue
Java:Stack Queue(包括四个:LinkedBlockingQueue、ArrayBlockingQueue、PriorityBlockingQueue、DelayQueue)
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
}
}
基本上一致,今天看的内容,基本就这么多了,所以就写到这里了,这么点内容,光比较整理,花了好几个小时,真悲催。