Collection集合、List集合及其方法

怪咖i!發表於2020-11-30

集合框架:

集合就是一個容器,
陣列也是一個容器,大小是唯一的型別是唯一的,它是有指標的
集合的特點:
1.容器大小可變
2.可以儲存多種資料型別的值【只能是引用資料型別,對基本資料型別而言儲存的是其包裝類】
根據集合的儲存方式不同,將集合劃分兩大類:一類是單列集合,另一類是雙列集合。
關鍵詞:Collection(單列集合)、Map(雙列集合)
下面我們先看一下單列集合,

單列集合

Collection被稱為是單列集合
單列集合是一個集合需要子類實現
List 允許重複、有序(輸入輸出順序)
Set 不允許重複、無序(不保證輸出順序)
Collection中的方法:
新增:
add(Object object) 向集合中新增一個元素

addAll(Collection collection) 向集合中新增另一個集合

Collection coll = new ArrayList();
		coll.add("滄海");//新增
Collection coll2 = new ArrayList();
		coll2.add("愛");//新增
		coll2.addAll(coll);//新增集合

刪除:
remove(Object object) 從集合中移除指定的元素
removeAll(Collection collection) 從集合中移除指定的元素集合

coll.remove(1);	//remove刪除單個元素
		System.out.println("刪除單個元素後:"+coll);
		//移除指定集合的元素 只要有相同的就移除
		Collection coll2 = new ArrayList();
		coll2.add(1);
		coll2.add(2);
		coll2.add(3);
		coll2.add("滄海");
		coll.removeAll(coll2);//刪除coll集合中和coll2及格元素相同的元素
		System.out.println("刪除coll集合中和coll2中相同的元素:"+coll);
		System.out.println("coll2中的元素:"+coll2);

clear() 清空集合中的所有元素

coll.clear();//clear清空
		System.out.println("清空後的集合:"+coll);
		//清空只能清空資料集合任然在

判斷:
isEmpty() 判斷集合是否為空—看集合中是否有元素

//判斷集合是否為空isEmpty()
		System.out.println("是否為空"+coll.isEmpty());

contains(Object object) 判斷集合中是否包含指定的元素
containsAll(Collection collection) 判斷集合中是否有另一個集合中對應的所有的元素

/**
	 * 是否包含
	 * 包含關鍵字:contains()   containsAll()
	 * 
	 */
	 public static void judgeMethod() {
		//建立集合物件
		
		Collection coll = new ArrayList();
		//add新增元素
		coll.add("滄海");
		coll.add(1);
		coll.add("聲笑");
		System.out.println("coll-->"+ coll);
		//是否包含某個元素
;		System.out.println("是否包含1:"+coll.contains(1));
		//addAll新增集合
		Collection coll2 = new ArrayList();
		coll2.add("愛");
		coll2.addAll(coll);//新增coll集合
		System.out.println("coll2-->"+coll2);
		//containsAll是否包含某個集合
		System.out.println("是否包含某個集合:"+coll.containsAll(coll2));

遍歷:
iterator() 遍歷集合

/**
	 * 迭代器(也就是遍歷集合)
	 */
	public static void iteratorMetod() {
		Collection coll = new ArrayList();
		coll.add("heihei");
		coll.add("小強");
		coll.add(123);
		Iterator  it = coll.iterator();//迭代器
		

大小:
size() 獲取集合元素個數
轉換:
toArray() 將集合轉換為陣列----注意:集合中元素的型別是惟一的//建立集合物件

	public static void changeArrayMetod() {
		Collection coll = new ArrayList();
		coll.add("heihei");
		coll.add("小強");
		coll.add(123);
		//將集合轉換為陣列
		//方法toArray() 
		Object[] objs = coll.toArray();
		for (int i = 0; i < objs.length; i++) {
			if (objs[i] instanceof String) {
				String str = (String)objs[i];
				System.out.println(str);
			}
		}
		System.out.println(objs.length);
	}

Collections與Collection的區別:
Collections是針對Collection集合提供的一個工具類

List集合及其應用

List集合同樣是單列集合並且是Collection集合的子類,但List同樣是一個介面需要子類來實現才能呼叫其中的方法。

/**
 *  List集合中常見的子類
 *  	ArrayList
 *  			使用的是陣列資料結構,查詢快,增刪慢
 *  	LinkedList
 *  			使用的是陣列連結串列資料結構,增刪快,查詢慢
 */
 /**
		 * 通過下標進行元素新增
		 */
		public static void addMethod() {
			List list = new ArrayList();
			list.add("洞庭湖");
			list.add("鄱陽湖");
			list.add("西湖");
			list.add(1, "龍子湖");
			System.out.println("list:"+list);
			
			List list2 = new ArrayList();
			list2.add("雞公山");
			list2.add("靈山");
			list2.add("老君山");
			System.out.println("list2:"+list2);
			list.addAll(1,list2);
			System.out.println("新增後的集合:"+list);
		}
		/**
		 * 通過下標移除元素
		 */
		public static void removeMethod() {
			List  list =  new ArrayList();
			list.add("洞庭湖");
			list.add("鄱陽湖");
			list.add("西湖");
			System.out.println("list集合的元素:"+list);
			list.remove(1);
			System.out.println("list集合刪除指定元素後:"+list);//這裡的結果為 {洞庭湖 ,西湖}
			List list2 = new ArrayList();
			list2.add("雞公山");
			list2.add("靈山");
			list2.add("西湖");
			list.removeAll(list2);
			System.out.println("移除與list2相同的元素:"+list);//{洞庭湖,鄱陽湖}
		}
		/**
		 * 獲取指定下標對應的元素
		 * list.get(下標數);
		 */
		public static void getElementMethod() {
			
			//get(int index)
			List  list = new ArrayList();
			list.add("洞庭湖");
			list.add("鄱陽湖");
			list.add("西湖");
			System.out.println("指定下標對應的元素:"+list.get(2));
			
		}
		/**
		 * 在迭代的過程中修改集合中的元素
		 */
		public static void listlteratorMethod() {
			List  list = new ArrayList();
			list.add("洞庭湖");
			list.add("鄱陽湖");
			list.add("西湖");
			//獲取迭代器
			ListIterator listlt = list.listIterator();
			int i = 0;
			while(listlt.hasNext()) {
				Object obj = listlt.next();
				if (i%2 != 0) {
							listlt.add("東"+ i + "湖");
				} else {
					listlt.set("西"+ i + "湖");
				}
				i++;
			}
			System.out.println("修改後的集合:" + list);
		}
		/**
		 * list集合中指標查詢方向
		 * 
		 */
		
		public static void listlteratorMethod2() {
			List list = new ArrayList();
			list.add("洞庭湖");
			list.add("鄱陽湖");
			list.add("西湖");
			//獲取迭代器
			ListIterator listlt = list.listIterator();
			System.out.println("下一個:"+ listlt.next());
			System.out.println("下一個:"+ listlt.next());
			System.out.println("下一個:"+ listlt.next());
			
			System.out.println("上一個:"+listlt.previous());
			System.out.println("上一個:"+listlt.previous());
			System.out.println("上一個:"+listlt.previous());
		}
}
/**
 * Collections是針對Collection集合提供的一個工具類
 * sort(List list)  對list集合進行排序(自然排序)
 * set集合不重複、TreeSet是預設就有自然排序的
 */
public class CollectionsDemo {
		public static void main(String[] args) {
			compareList();
		}
		public static void compareList() {
			List list = new ArrayList();
			list.add("baidu.com");
			list.add("aliyun.cn");
			list.add("taobao.com");
			list.add("yunhe.cn");
			System.out.println("未排序的集合:"+list);
			//對集合進行排序
			Collections.sort(list);
			System.out.println("排序後的集合:"+ list);
		}
		
}

`

相關文章