集合容器
Collection:
–list–對元素增刪改查
新增元素:list.add(obj)
插入元素:list.add(index,obj)
刪除元素:list.remove(index)
修改元素:list.set(index,obj)
獲取元素:list.get(index)
獲取子列表: list.subList(index1,index2)包含1不包含2
想要在list中準確獲取迭代器物件,就使用LsitIterator。
例子:
ListIterator it =list listIterator();
while it.hasnext()
object obj = it.next();
if(obj.equals(“xxxx”)
{
it.add(index,”xxxx”)
}
list下的容器:
|–Vector 內部是陣列資料結構, 是同步的(幾乎不用了)
|–ArrayList 內部是陣列資料結構,是不同步的。替代了Vector
|–LinkedList 內部是連結串列結構,是不同步的。
包裝類:
為了方便操作基本資料型別值,將其封裝成了物件,在物件中定義了屬性和行為,豐富了該資料的操作。
包裝類的操作:進位制轉換,型別轉換。
十進位制—-》其他進位制:
System.out.println(Integer.toBinaryString(60));//60轉換成二進位制
System.out.println(Integer.toOctalString(60));//60轉換成八進位制
System.out.println(Integer.toHexString(60));//60轉換成十六進位制
System.out.println(Integer.toString(60,x));//60轉換成任意x進位制
System.out.println(Integer.ParseInt(“110”,2));//110轉換成2進位制
Integer 的方法:
equals,對比值大小是否相等
compareTo 對比值的大小,大,返回1,小,返回-1
Integer 新特性,裝箱。
什麼時候自動裝箱:
型別不匹配的時候。
linklist、
addfirst 頭插
Linklist link =new linklist;
iterator it = link.iterator();
link.getfirst:獲取第一個但不刪除,如果連結串列為空,丟擲異常
link.peekfirst:獲取第一個但不刪除,如果連結串列為空,返回null
link.removefirst:獲取第一個並刪除。如果連結串列為空,丟擲異常
link.pollfirst:獲取第一個並刪除。如果連結串列為空,返回null
link.getlast()獲取最後一個,如果連結串列為空,丟擲異常
link.peeklast:獲取最後一個但不刪除,如果連結串列為空,返回null
link.removelast:獲取最後一個並刪除。如果連結串列為空,丟擲異常
link.polllast:獲取最後一個並刪除。如果連結串列為空,返回null
–用linkedlist 建立 堆疊和佇列。
堆疊:先進後出,用add進棧,用removelast出棧
佇列:先進先出,用add 進佇列,用removefirst 出佇列
在使用迭代器時,可以新建一個當前物件為父類,強轉迭代器next方法的變數,用來迭代、
例::
arraylist al= new Arraylist<>();
Iterator it = al.iterator();
person p=(person)it.next();
此時p就是迭代器,可以呼叫person的方法,以此讀取al中的每個資料結構。
Set(元素不可重複,無序)
方法與Collection一樣。
有兩個常用的物件:
||–HashSet:(內部資料結構是雜湊表)不同步。由雜湊表支援。不保證set 的迭代順序。不保證順序不變
為了保證自定義物件不重複,需要在自定義物件中複寫hashCode和equals方法。
public int hashCode(){
return name.hashCode()+age;
}
public boolean equals(Object obj) {
// TODO Auto-generated method stub
Pperson p =(Pperson)obj;
return this.name.equals(p.name)&& this.getAge()==p.getAge();;
}
如果物件的hashCode 不同,那麼不用判斷equals方法,直接儲存到雜湊表中。
如果物件的HashCode相同,那麼判斷equals方法,是否為true。
如果為true,視為相同元素,不存。否則存。
||–TreeSet:可以對Set集合中的元素進行排序,是不同步的。
判斷元素唯一性的方法:根據比較方法的返回結果是否是0,是0就是相同元素,不存。
public int compareTo(Object o) {
Treeperson pTreeperson=(Treeperson)o;
int temp=this.age-pTreeperson.getAge();
if(temp==0)
{
return this.name.compareTo(pTreeperson.getName());
}
else
{
return temp;
}
}
讓元素具備比較功能,只需要實現Comparable介面,複寫CompareTo方法。
如果不要按照物件中具備的自然順序進行排序,如果物件中不具備自然順序,
我們可以使用TreeSet集合的第二種排序方式:
讓集合自身具備比較功能。—Comparator比較器implements Comparator
比較器在初始化TreeSet物件的時候設定。TreeSet ts= new TreeSet(new Comparator)
MAP
相關文章
- Java Collection介面 ArrayList集合(容器)Java
- 常見的集合容器應當避免的坑
- 麵霸篇:Java 集合容器大滿貫(卷二)Java
- Java容器 | 基於原始碼分析List集合體系Java原始碼
- 【Java】Java容器篇(二),深入理解List集合類Java
- Java容器 | 基於原始碼分析Map集合體系Java原始碼
- 容器(一)剖析面試最常見問題之 Java 集合框架面試Java框架
- 集合是存放資料的容器,在學習Java中要清楚知道“什Java
- 【Java集合】1 集合概述Java
- Guava集合--新集合型別Guava型別
- Guava集合--Immutable(不可變)集合Guava
- Collection集合、List集合及其方法
- Hash Map集合和Hash Set集合
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- L2-005 集合相似度【集合】
- 【Java集合原始碼剖析】Java集合框架Java原始碼框架
- Map集合
- java集合Java
- DataTransferItemList 集合
- 集合框架框架
- 集合sum
- redis集合Redis
- Vector容器鑲套容器
- Java集合 - 集合知識點總結概述Java
- Java集合詳解(一):全面理解Java集合Java
- 【java】【集合】陣列和集合的基本概述Java陣列
- 【Java集合】單列集合Collection常用方法詳解Java
- List集合(ArrayList-LinkedList);Set集合(HashSet-TreeSet)
- 洛谷題單指南-集合-P1621 集合
- 年度文章集合 | 最全微前端集合【建議收藏】前端
- 泛型方法、初始集合和集合的遍歷泛型
- Map集合&&Map集合的不同遍歷【keySet()&&entrySet()】
- Java程式設計基礎17——集合(List集合)Java程式設計
- 09.集合
- 比較集合
- 集合與列表
- 六,Java集合Java
- java集合框架Java框架