Java Data Structure


Array
dataType[] arrayRefVar;

List
List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

ArrayList
该类也是实现了List的接口,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。
Vector 
该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍。
Arrays
能方便地操作数组,它提供的所有方法都是静态的。
Final
fix size
具有以下功能:
  • 给数组赋值:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

String vs StringBfer 和 StringBuilder 
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类

This is a block for code:

StringBuffer sBuffer = new StringBuffer("original str:");
    sBuffer.append("www"); 
    sBuffer.append(".runoob");
    sBuffer.append(".com"); //string buffer can do modify, no new object will created, and the address will not be changed
    System.out.println(sBuffer);

    String str = "123";
    str = str.concat("456");
    System.out.println(str); // can not modify string directly, str will be assigned to a new abject
}

Comments

Popular posts from this blog

Git - comflict solving

Getting started with OpenShift