對java.util的總結 二

來源:互聯網
上載者:User


對java.util的總結 二
qzg589 原創  (參與分:123781,專家分:6302)   發表:2005-08-08 18:23   版本:1.0   閱讀:1637

小又會變小。
在前面的例子中,使用由toString( )方法提供的預設的轉換顯示類集的內容,toString( )
方法是從AbstractCollection繼承下來的。儘管它對簡短的例子程式來說是足夠了,然而很少
使用這種方法去顯示實際中的類集的內容。通常編程者會提供自己的輸出程式。但在下面
的幾個例子中,仍將採用由toString( )方法建立的預設輸出。
儘管當對象被儲存在ArrayList對象中時,其容量會自動增加。仍可以通過調用
ensureCapacity( )方法來人工地增加ArrayList的容量。如果事Crowdsourced Security Testing道將在當前能夠容納的類
集中儲存許許多多的項時,你可能會想這樣做。在開始時,通過一次性地增加它的容量,
就能避免後面的再分配。因為再分配是很花時間的,避免不必要的處理可以改善效能。
ensureCapacity( )方法的特徵如下所示:
void ensureCapacity(int cap)
這裡,cap是新的容量。
相反地,如果想要減小在ArrayList對象之下的數組的大小,以便它有正好容納當前項
的大小,可以調用trimToSize( )方法。該方法說明如下:
void trimToSize( )
從數組列表(ArrayList)獲得數組(Array)
當使用ArrayList時,有時想要獲得一個實際的數組,這個數組包含了列表的內容。正
如前面解釋的那樣,可以通過調用方法toArray( )來實現它。下面是幾個為什麼可能想將類
集轉換成為數組的原因:
? 對於特定的操作,可以獲得更快的處理時間。
? 為了給方法傳遞數組,而方法不必重載去接收類集。
? 為了將新的基於類集的程式與不認識類集的老程式整合。
無論何種原因,如下面的例子程式所示,將ArrayList轉換成數組是一件繁瑣的事情。
// Convert an ArrayList into an array.
import java.util.*;
class ArrayListToArray {
public static void main(String args[]) {
// Create an array list
ArrayList al = new ArrayList();
// Add elements to the array list
al.add(new Integer(1));
al.add(new Integer(2));
al.add(new Integer(3));
al.add(new Integer(4));
System.out.println("Contents of al: " + al);
// get array

Object ia[] = al.toArray();
int sum = 0;
// sum the array
for(int i=0; i<ia.length; i++)
sum += ((Integer) ia[i]).intValue();
System.out.println("Sum is: " + sum);
}
}
該程式的輸出如下所示:
Contents of al: [1, 2, 3, 4]
Sum is: 10
程式開始時建立一個整數的類集。正如上面做出的解釋那樣,由於不能將原始類型存
儲在類集中,因此類型Integer的對象被建立並被儲存。接下來,toArray( )方法被調用,它
獲得了一個Objects數組。這個數組的內容被置為整型(Integer),接下來對這些值進行求
和。
15.3.2 LinkedList類
LinkedList類擴充AbstractSequentialList並執行List介面。它提供了一個連結清單資料結
構。它具有如下的兩個建構函式,說明如下:
LinkedList( )
LinkedList(Collection c)
第一個建構函式建立一個空的連結清單。第二個建構函式建立一個連結清單,該連結
列表由類集c中的元素初始化。
除了它繼承的方法之外,LinkedList類本身還定義了一些有用的方法,這些方法主要用
於操作和訪問列表。使用addFirst( )方法可以在列表頭增加元素;使用addLast( )方法可以在
列表的尾部增加元素。它們的形式如下所示:
void addFirst(Object obj)
void addLast(Object obj)
這裡,obj是被增加的項。
調用getFirst( )方法可以獲得第一個元素。調用getLast( )方法可以得到最後一個元素。
它們的形式如下所示:
Object getFirst( )
Object getLast( )
為了刪除第一個元素,可以使用removeFirst( )方法;為了刪除最後一個元素,可以調
用removeLast( )方法。它們的形式如下所示:
Object removeFirst( )
Object removeLast( )

下面的程式舉例說明了幾個LinkedList支援的方法。
// Demonstrate LinkedList.
import java.util.*;
class LinkedListDemo {
public static void main(String args[]) {
// create a linked list
LinkedList ll = new LinkedList();
// add elements to the linked list
ll.add("F");
ll.add("B");
ll.add("D");
ll.add("E");
ll.add("C");
ll.addLast("Z");
ll.addFirst("A");
ll.add(1, "A2");
System.out.println("Original contents of ll: " + ll);
// remove elements from the linked list
ll.remove("F");
ll.remove(2);
System.out.println("Contents of ll after deletion: "
+ ll);
// remove first and last elements
ll.removeFirst();
ll.removeLast();
System.out.println("ll after deleting first and last: "
+ ll);
// get and set a value
Object val = ll.get(2);
ll.set(2, (String) val + " Changed");
System.out.println("ll after change: " + ll);
}
}
該程式的輸出如下所示:
Original contents of ll: [A, A2, F, B, D, E, C, Z]
Contents of ll after deletion: [A, A2, D, E, C, Z]
ll after deleting first and last: [A2, D, E, C]
ll after change: [A2, D, E Changed, C]
因為LinkedList實現List介面,調用add(Object)將項目追加到列表的尾部,如同addLast( )
方法所做的那樣。使用add( )方法的add(int, Object)形式,插入項目到指定的位置,如例子

程式中調用add(1,“A2”)的舉例。
注意如何通過調用get( )和set( )方法而使得ll中的第三個元素髮生了改變。為了獲得一
個元素的當前值,通過get( )方法傳遞儲存該元素的下標值。為了對這個下標位置賦一個新
值,通過set( )方法傳遞下標和對應的新值。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.