RE JAVA學習 集合操作

2021-08-07 08:02:09 字數 4176 閱讀 2426

1.iterator:迭代器

1.1 作用:對collection集合進行迭代(遍歷集合)

collection c = new hashset();

iterator it= c.iterator();

public class collection_iterator 

}system.out

.println(c);//[two, one, three, four]

}}

1.2 hasnext方法: boolean hasnext()判斷集合是否還有元素可以遍歷

public

class newfordemo2 }}

}

1.3 e next() 返回迭代的下乙個元素

遍歷集合:

while(it.hasnext())

在進行迭代時不能對集合c進行操作

1.4 void remove() 在原集合中刪除元素

注意:在呼叫remove方法前必須通過迭代器的next()方法迭代過元素,那麼刪除的就是這個元素。(並且不能再次呼叫remove方法,除非再呼叫next()後才可再次呼叫)

刪除:

while (it.hasnext())

}2.增強for迴圈(jdk1.5特性 本質上是迭代器)

2.1 語法:for(元素型別 e: 集合或陣列)

for (string str : c)

在進行迴圈的時候不能對集合c進行操作

3.泛型(jdk1.5特性 本質:引數化型別)

3.1 定義:在類、介面和方法的定義過程中,所操作的資料型別被傳入的引數指定

3.2 應用:在建立物件時可以將該型別作為引數傳遞(如:arraylist e為泛型引數)

所有的集合型別都帶有泛型引數,這樣在建立集合時可以指定放入集合中的物件型別

4.list(可重複集) 是collection的字介面,用於定義線性表資料結構

4.1 arraylist和linkedlist(list的兩個實現類)(方法邏輯上基本一樣)

arraylist更適合於隨機訪問而linkedlist更適合於插入和刪除

4.2 e get(int index) 獲取集合中指定下標對應的元素(從0開始)

e set(int index,e element) 將給定的元素存入給定位置,並將原位置的元素返回

4.3 void add(int index,e element) 將給定的元素插入到指定位置(原位置及後續元素都順序向後移動)–注意區分 void add(e element) 新增元素方法

e remove(int index) 刪除給定位置的元素,並將被刪除的元素返回

4.4 list sublist(int fromindex,int toindex)

擷取下標從fromindex到toindex(含頭不含尾)

注意:sublist獲取的list與原list占有相同的儲存空間,對子list的操作會影響原list

public

void

testsublist()

system.out.println(list); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

listsublist = list.sublist(3, 8);

system.out.println(sublist); // [3, 4, 5, 6, 7]

// sublist獲得的list和源list占有相同的資料空間

for (int i = 0; i < sublist.size(); i++)

system.out.println(sublist); // [30, 40, 50, 60, 70]

system.out.println(list); // [0, 1, 2, 30, 40, 50, 60, 70, 8, 9]

}

可以用擷取子集合並使用clear方法來清楚list中的一段元素

// 可以用於刪除連續元素

list.sublist(3, 8).clear();

system.out.println(list);

4.5 轉換為陣列

兩種方法:

object toarray()

t toarray(ta)

listlist=new arraylist();

list.add("aa");

...string str=list.toarray(new string {});

4.6 陣列轉換為list (arrays類中提供的乙個靜態方法aslist)

static listaslist返回的list的集合元素型別由傳入的陣列的元素型別決定

注意:返回的集合不能對其增刪元素,否則會丟擲異常。並且對集合的元素進行修改會影響陣列對應的元素。

listlist = arrays.aslist(strarr);

5.collections 集合工具類(是乙個輔助類,為集合提供排序 執行緒安全)

5.1 void sort(list list) 對給定的集合元素進行自然排序

collections.sort(list)

public

class sortlistdemo1

system.out.println(list);

collections.sort(list);

system.out.println();

}}

5.2 comparable 介面

作用:在使用collections的sort排序的集合元素都必須是comparable介面的實現類,該介面表示其子類是可比較的。

實現介面時要重寫乙個抽象方法:

int compareto(t t);

返回值表示大小 >0 則當前物件大於給定物件 其他同理

public

class point implements comparable

public

point()

public string tostring()

public

intgetx()

public

void

setx(int x)

public

intgety()

public

void

sety(int y)

/** 實現comparable介面後必須重寫方法compareto

* 該方法的作用是定義當前物件this與引數物件o之間

* 比較大小的規則

* 返回值不關注具體取值,只關注取值範圍

* 當返回值》0 當前物件this大於引數物件o(this>o)

* 當返回值<0 thispublic

intcompareto(point o)

}

//測試

public

class

sortlistdemo2

}

5.3 comparator

臨時指定比較規則

實現 int compare(t o1,t o2)

返回值表示大小 >0 則o1>o2 其他同理

public

class sortlistdemo3

});system.out.println(list);

}}

6.佇列和棧(主要寫的是佇列)

佇列 先進先出(fifo first in first out)

棧 先進後出(filo first in last out)

queue佇列:

6.1建立:queue queue = new linkedlist();

6.2主要方法:

boolean offer 將乙個物件新增至隊尾(新增成功返回true)

e poll() 從隊首刪除並返回乙個元素

e peek() 返回隊首元素(但不刪除)

deque雙端佇列(從佇列的兩端分別可以入隊和出隊操作)double ended queue

限制deque只能從一端出入,則可實現 棧(stack)

RE JAVA學習 日期操作 步入集合

一.日期操作 1.date類 1.1 date date new date 系統當前的日期及時間資訊 1.2 long time date.gettime 該方法返回乙個long值 從1970年1月1日到今天所過的毫秒數 1.3 其他很多方法均已過時由 calendar代替public class ...

RE JAVA學習 步入抽象

一.static final常量 1 必須宣告同時初始化 2 通過類名點 來訪問,不能改變 3 建議 常量名所有字母都大寫,多個單詞用 分隔 4 編譯器在編譯時將常量直接替換為具體的值,效率高 二.抽象方法 1 由abstract修飾 2 只有方法的定義,沒有具體的實現 大括號 都沒有 三.抽象類 ...

python學習 集合常見操作

remove 刪除給定元素,元素不在集合中時會報錯 discard 刪除給定元素,元素不在集合中時什麼也不做 pop 隨機刪除乙個元素,並返回,集合為空會報錯 clear 清空集合。add 在集合中新增乙個元素,元素存在時,不變 update 相當於並集 集合不能修改單個元素 集合不能通過索引訪問,...