java 三大集合_java中的三大集合入门笔记(简单实用)
為什么使用集合框架
如圖:
集合的好處:
集合彌補了數組的缺陷,它比數組更靈活更實用,可大大提高軟件的開發效率,而且不同的集合適用于不同的場合。
Java集合主要分為以下3種類型
Java集合框架提供了一套性能優良、使用方便的接口和類,它們位于java.util包中
1.List:?三有產品:有順序,有下標,有重復
2.Set:?三無產品:無順序,無下標,無重復
3.Map:?鍵值對:key-value 通過鍵可以找到值
提示:
List和Set實現于 Collection 接口
List還有兩個實現類 ArrayList LinkedList
Set也有兩個實現類 HashSet TreeSet
Map也有兩個實現類 HashMap TreeMap
如圖:
ArrayList和LinkedList
1.ArrayList實現了長度可變的數組,在內存中分配連續的空間。遍歷元素和隨機訪問元素的效率比較高
2.LinkedList采用鏈表存儲方式。插入、刪除元素時效率比較高
一、ArrayList介紹
3.使用ArrayList存儲元素?如圖:
4.List接口還提供的remove():移除、contains():是否包含
的方法
5.List接口方法有很多,這里就不都演示了,它的常用方法
如下圖:
以下是代碼演示部分
package cn.jbit.exec;
import java.util.ArrayList;
import java.util.List;
/**
* 使用ArryList存儲和處理企鵝信息。
* @author 丿林
*/
public class Test1 {
public static void main(String[] args) {
// 1、創建多個企鵝對象
Penguin ououPenguin = new Penguin("歐歐", "Q仔");
Penguin yayaPenguin = new Penguin("亞亞", "Q妹");
Penguin meimeiPenguin = new Penguin("美美", "Q妹");
Penguin feifeiPenguin = new Penguin("菲菲", "Q妹");
// 2、創建ArrayList集合對象并把多個企鵝對象放入其中
List penList = new ArrayList();
penList.add(ououPenguin);
penList.add(yayaPenguin);
penList.add(meimeiPenguin);
penList.add(2, feifeiPenguin); // 添加feifeiPenguin到指定位置
// 3、輸出集合中企鵝的數量
System.out.println("共計有" + penList.size() + "只企鵝。");
// 4、通過遍歷集合顯示各只企鵝信息
System.out.println("分別是:");
for (int i = 0; i < penList.size(); i++) {
Penguin dog = (Penguin) penList.get(i);
System.out.println(dog.getName() + "\t"
+ dog.getSex());
}
// 5、刪除集合中第一個企鵝和feifeiPenguin企鵝
penList.remove(penList.size()-1);
penList.remove(feifeiPenguin);
// 6、顯示刪除后集合中各只企鵝信息
System.out.println("\n刪除之后還有" + penList.size() + "只企鵝。");
System.out.println("分別是:");
for (int i = 0; i < penList.size(); i++) {
Penguin dog = (Penguin) penList.get(i);
System.out.println(dog.getName() + "\t" + dog.getSex());
}
//7、判斷集合中是否包含指定企鵝信息
if(penList.contains(meimeiPenguin))
System.out.println("\n集合中包含美美的信息");
else
System.out.println("\n集合中不包含美美的信息");
}
}
二、LinkedList介紹
1.LinkedList集合類
插入、刪除操作頻繁時,可使用LinkedList來提高效率
LinkedList專門提供對頭部和尾部元素進行添加和刪除操作的方法
2.使用LinkedList存儲元素
3.LinkedList的特殊方法
Map接口(HashMap 、TreeMap )
1.Map接口專門處理鍵值映射數據的存儲,可以根據鍵實現對值的操作。最常用的實現類是HashMap
2.使用HashMap存儲元素
3.TreeMap:適用于按自然順序或自定義順序遍歷鍵(key)。
HashMap通常比TreeMap快一點(樹和哈希表的數據結構使然),建議多使用HashMap,在需要排序的Map時候才用TreeMap。
4.Map接口常用方法
5.遍歷Map集合
方法1:通過迭代器Iterator實現遍歷
獲取Iterator :Collection 接口的iterator()方法
Iterator的方法
boolean hasNext(): 判斷是否存在另一個可訪問的元素
Object next(): 返回要訪問的下一個元素
方法2:?增強for循環
以下是代碼演示部分
package cn.jbit.exec;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 使用HashMap存儲和處理企鵝信息。
* @author 丿林
*/
public class Test4 {
public static void main(String[] args) {
/* 1、創建多個企鵝對象*/
Penguin ououPenguin = new Penguin(1,"歐歐", "Q仔");
Penguin yayaPenguin = new Penguin(2,"亞亞", "Q妹");
Penguin meimeiPenguin = new Penguin(3,"美美", "Q妹");
Penguin feifeiPenguin = new Penguin(4,"菲菲", "Q妹");
/* 2、創建HashMap集合對象并把多個企鵝對象放入其中*/
Map penguinMap=new HashMap();
penguinMap.put(ououPenguin.getId(),ououPenguin);
penguinMap.put(yayaPenguin.getId(),yayaPenguin);
penguinMap.put(meimeiPenguin.getId(),meimeiPenguin);
penguinMap.put(feifeiPenguin.getId(),feifeiPenguin);
/*3、通過迭代器依次輸出集合中所有狗狗的信息*/
System.out.println("使用Iterator遍歷,所有企鵝的昵稱和品種分別是:");
Set keys=penguinMap.keySet();//取出所有key的集合
Iterator it=keys.iterator();//獲取Iterator對象
while(it.hasNext()){
int key=it.next(); //取出key
Penguin penguin=penguinMap.get(key); //根據key取出對應的值
System.out.println(penguin.getName()+"\t"+penguin.getSex());
}
/*4、通過foreach依次輸出集合中所有狗狗的信息*/
System.out.println("使用foreach語句遍歷,所有企鵝的昵稱和品種分別是:");
for(int key:keys){
Penguin penguin=penguinMap.get(key); //根據key取出對應的值
System.out.println(penguin.getName()+"\t"+penguin.getSex());
}
}
}
Set接口(HashSet 、TreeSet)
1.常用方法
first():返回此Set集合中第一個(最低)元素
last():返回此Set集合中最后一個(最高)元素
comparator():返回對Set進行排序的比較器,如果Set使用自然順序,則返回null
headSet(T test):返回一個新的Set集合,擁有test(不包含)之前的所有對象
tailSet(T test):返回一個新的Set集合,擁有test(包含)之后的所有對象
subSet(T test1,E test2):返回一個新的Set集合,擁有test(包含)之后,test2(不包含)之前的所有對象。
public class set {
public static void main(String[] args) {
//創建String類型的TreeSet集合
TreeSet < String > tree = new TreeSet < String > ();
tree.add("zhangsan"); //添加元素
tree.add("lisi");
tree.add("wangwu");
System.out.print("tree的第一個元素:");
System.out.println(tree.first());
System.out.print("tree的最后一個元素:");
System.out.println(tree.last());
System.out.println("創建迭代器遍歷集合");
Iterator < String > it = tree.iterator();
//遍歷集合的方法
while(it.hasNext()) {
String string = it.next();
System.out.println(string);
}
System.out.println("取出lisi之前的對象元素");
it = tree.headSet("lisi").iterator();
while(it.hasNext()) {
String string = it.next();
System.out.println(string);
}
}
}
最后提一下:泛型集合
1.可以用于解決以下強制類型轉換時容易出現的異常問題
List的get(int index)方法獲取元素
Map的get(Object key)方法獲取元素
Iterator的next()方法獲取元素
總結圖
本文轉自:https://blog.csdn.net/weixin_44490662/article/details/103043365
贊(4)
總結
以上是生活随笔為你收集整理的java 三大集合_java中的三大集合入门笔记(简单实用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么生成字母_java自动生成字
- 下一篇: 调用布尔变量java_关于java的参数