在本文中,我們將從集合框架中 了解三個重要的集合類別ArrayList、Vector和HashMap,並開始在我們自己的程式碼中使用它們。 使用集合和集合類,我們可以將一組元素儲存為簡單對象,並使用這些類別中可用的各種方法來操作它們。類別和可以從包中獲得。另一個類別是集合,可從套件中獲取,它允許您儲存鍵值映射的集合。這使得當密鑰已知時可以從集合中獲取所需的值。讓我們一一看看使用這些集合類別的範例。範例 1. 在本範例中,我們將使用類別 - ArrayList 集合編寫一個簡單的程式 清單 1. 範例 1 的執行程式碼
ArrayList
Vector
ArrayList
Vector
java.util
java.util
HashMap
// подключаем класс
import java.util.ArrayList;
public class ArrayListExample {
static String[] favouriteCharacters = {"Harry", "Ron", "Hermione", "Snape", "Dumbledore", "Moody", "Riddle", "Fred"};
int i;
public ArrayList favouritelist = new ArrayList();
// метод добавляет элементы ‘favouriteCharacters’ в ‘favouritelist’
private void includeCharacters(String[]favouriteCharacters)
{
for (i = 0; i < favouriteCharacters.length; i++) {
// добавление элементов по одному из массива ‘favouriteCharacters’
favouritelist.add(favouriteCharacters[i]);
printCharacters(i);
}
// добавление элементов, посредством указания позиций
favouritelist.add(1, "george");
favouritelist.add(4, "Peter");
}
// метод выводит элемент ‘favouritelist’ по указанной позиции
private void printCharacters(int i) {
System.out.println("Character " + (i + 1) + ":" + favouritelist.get(i));
}
// метод выводит все элементы ‘favouritelist’
private void printCharacters() {
System.out.println("\n");
for(int i=0;i<favouritelist.size();i++){
System.out.println("Character" + (i + 1) + ":" + favouritelist.get(i));
} }
// метод возвращает размер коллекции ‘favouritelist’
private int sizeofCharactersList() {
System.out.println("\n");
System.out.println("Total No of Characters in Array:" + favouriteCharacters.length);
System.out.println("Total No of Characters in List:" + favouritelist.size());
return favouritelist.size();
}
// метод выводит позицию element ‘favouritelist’ по указанному имени
public void getCharacterPostion(String characterName) {
System.out.println("\n");
System.out.println("The position of the character\t" + characterName + "\tis\t" + favouritelist.indexOf(characterName));
}
// метод удаляет элемент ‘favouritelist’ по указанному имени
public void removeCharacter(String characterName) {
if(favouritelist.size()>favouriteCharacters.length){
favouritelist.remove(characterName);
}
else{
System.out.println("\n");
System.out.println("The element\t"+favouritelist.get(favouritelist.indexOf(characterName))+"\tcannot be removed");
}
}
// метод удаляет элемент ‘favouritelist’ по указанной позиции
public void removeCharacter(int i) {
if(favouritelist.size()>favouriteCharacters.length){
favouritelist.remove(i);
}
else{
System.out.println("The element\t"+favouritelist.get(i)+"\tcannot be removed");
}
}
public static void main(String args[]) {
ArrayListExample example = new ArrayListExample();
example.includeCharacters(favouriteCharacters);
example.printCharacters();
int size = example.sizeofCharactersList();
example.getCharacterPostion("Ron");
example.removeCharacter("Snape");
example.removeCharacter(2);
example.sizeofCharactersList();
example.removeCharacter("Harry");
example.removeCharacter(4);
}
}
運行程式將產生以下輸出:
Character 1:Harry
Character 2:Ron
Character 3:Hermione
Character 4:Snape
Character 5:Dumbledore
Character 6:Moody
Character 7:Riddle
Character 8:Fred
Character1:Harry
Character2:george
Character3:Ron
Character4:Hermione
Character5:Peter
Character6:Snape
Character7:Dumbledore
Character8:Moody
Character9:Riddle
Character10:Fred
Total No of Characters in Array:8
Total No of Characters in List:10
The position of the character Ron is 2
Total No of Characters in Array:8
Total No of Characters in List:8
The element Harry cannot be removed
The element Dumbledore cannot be removed
讓我們逐步查看提供的範例程式。在此範例中,在程式的第一行,我們匯入類別 - collection ArrayList
。favouriteCharacters
然後,我們輪流初始化一個包含人員姓名和favouritelist
集合實例的字串陣列ArrayList
。此方法includeCharacters(args)
可以分為兩部分。在該方法的第一部分中,使用循環將元素從陣列新增至集合中。在這種情況下,新增元素的ArrayList
順序與它們在陣列中的位置相同。發生這種情況是因為我們沒有為新增到集合中的元素定義任何位置。但在我們方法的第二部分中,使用索引來添加元素。在這種情況下,元素將會新增到集合中指定的確切位置。當一個新元素被加入到集合的中間時ArrayList
,該集合中已經存在的、位於新元素指定插入位置之外的元素將被移動到它們自己的後續位置,從而增加集合的大小。 當我們首先查看輸出時,我們會看到:
Total No of Characters in List: 10
Total No of Characters in Array: 8
這是因為除了添加到 的數組有 8 個元素之外ArrayList
,我們還明確添加了 2 個元素,從而將集合的大小增加到 10。該方法getCharacterPosition(args)
獲取元素的值(人名)並顯示位置該元素在集合中的位置ArrayList
。如果 中沒有這樣的元素ArrayList
,則顯示值-1。此方法removeCharacter(args)
從集合中刪除指定的元素值(人名),並將該元素的索引或元素本身作為參數。在上面的程式碼中,我們可以注意到,由於我們從集合中刪除了 2 個元素,因此集合的大小已變為 8,而不是 10。 如果陣列和集合的大小相同,則該方法傳回下列行:
The element Harry cannot be removed
The element Dumbledore cannot be removed
此方法的執行removeCharacter(args)
僅以集合的大小必須大於陣列的大小為條件。範例 2. 在此範例中,我們將使用類別(集合)編寫一個簡單的程式Vector
清單 2. 範例 2 的執行程式碼
// подключаем класс
import java.util.Vector;
public class VectorExample {
Vector vector=new Vector();
public void addCharacterandPrint(){
vector.add("Weasley");
vector.add("Potter");
for(int i=0;i<vector.size();i++){
System.out.println("The characters are\t"+vector.get(i));
}
}
public static void main(String args[]){
VectorExample example=new VectorExample();
example.addCharacterandPrint();
}
}
運行程式將產生以下輸出:
The characters are Weasley
The characters are Potter
上面的程式碼只是一個小範例,提供作為證明集合ArrayList
和Vector
. Vector
可以使用相同的方法以與集合相同的方式操作集合ArrayList
。範例 3. 在本範例中,我們將使用集合類別編寫一個簡單的程式HashMap
清單 3. 範例 3 的執行程式碼
// подключаем класс
import java.util.HashMap;
public class HashMapExample {
HashMap hashMap=new HashMap();
String Books[]={"Famous Five","Goosebumps","Robinson Crusueo","Nancy Drew","The Cell","The Davinci Code","Harry Potter"};
public void mapAuthors(){
hashMap.put("Famous Five","Enid Blyton");
hashMap.put("Goosebumps","R.L.Stine");
hashMap.put("Nancy Drew","Carolyn Keene");
hashMap.put("The Cell","Christopher Pike");
hashMap.put("The Davinci Code","Dan Brown");
hashMap.put("Harry Potter","J.K. Rowling");
}
public void getBookList(){
for(int i=0;i<Books.length;i++){
if(hashMap.containsKey(Books[i])){
System.out.println("Author"+(i+1)+":\t"+hashMap.get(Books[i])+"\t"+Books[i]);
}
else{
System.out.println("\nThe Imformation about the author of the book\t"+Books[i]+"\tis not available\n");
}
}
}
public static void main(String args[]){
HashMapExample hashMapExample=new HashMapExample();
hashMapExample.mapAuthors();
hashMapExample.getBookList();
}
}
運行程式將產生以下輸出:
Author1: Enid Blyton Famous Five
Author2: R.L.Stine Goosebumps
The Information about the author of the book Robinson Crusueo is not available
Author4: Carolyn Keene Nancy Drew
Author5: Christopher Pike The Cell
Author6: Dan Brown The Davinci Code
Author7: J.K. Rowling Harry Potter
讓我們一步步看一下上面的程式碼。在這個範例程式中,我們有一個字串數組,其元素是名著的名稱。此方法mapAuthors()
建立書名及其作者的顯示。這裡的鍵是書名,值是那些書的作者。當呼叫此方法時getBookList()
,它會遍歷陣列Books
並一一取得書名。接下來,該方法檢查任何書籍是否有自己的作者。正如我們所看到的,如果該方法找不到該書的作者,則會顯示該訊息not available
。否則,作者和他的書都會一一展示。 結論: 在本文中,我們研究了一些關於類別 - 集合ArrayList
、 、的知識Vector
,HashMap
並嘗試在我們自己的程式碼中使用它們。原文:如何使用Java Collections Framework提供的ArrayList、Vector和HashMap類別
GO TO FULL VERSION