Java之collection

  1. 數組:存儲一種數據類型的集合

  2. 數組的特點:

    1.只能存儲在同一種數據類型的數據

    2.一旦初始化,長度固定

    3.數組中的元素與元素之間的內存地址是連續的

    注意:object類型的數組可以存儲任意類型的數據

public class Demo1 {

	public static void main(String[] args) {
		Object[] arr = new Object[10];
		arr[1] = "abc";
		arr[2] = 'a';
		arr[3]  = 12;
		
	}
	
}

2.集合:集合是存儲對象的集合容器

集合比數組的優勢:

  1.集合可以存儲任意類型的對象數據,數組只能存儲一種數據類型的數據

  2.集合的長度是會發生變化的,數組的長度是固定的

---------|Collection 單利集合的跟接口

-------------| List 如果是實現了List接口的集合類,具備的特點,有序,可重複

-------------| Set 如果是實現了Set接口的集合類,具備特點,無需,不可重複

3.Collection接口中的方法


增加

add(E e)  添加成功返回true,添加 失敗返回false.

addAll(Collection c)  把一個集合 的元素添加到另外一個集合中去。

刪除

clear() 

remove(Object o) 

removeAll(Collection  c) 

retainAll(Collection  c) 

查看

size() 


判斷

isEmpty() 

contains(Object o) 

containsAll(Collection<?> c) 

迭代

toArray() 

iterator() 

public class Demo2 {
	
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add("令計劃");
		c.add("徐才厚");
		c.add("周永康");
		System.out.println("添加成功嗎?"+c.add("郭美美"));
		
		
		//創建集合
		Collection c2 = new ArrayList();
		c2.add("徐才厚");
		c2.add("郭美美");
		c2.add("狗娃");
	
		/*
		c.addAll(c2); // 把c2的元素的添加到c集合 中去。
		*/
		
		/*
		 刪除方法:
		c.clear(); //clear()清空集合中的元素
		System.out.println("刪除成功嗎?"+c.remove("美美"));  // remove 指定集合中的元素刪除,刪除成功返回true,刪除失敗返回false.
		
		c.removeAll(c2); //刪除c集合中與c2的交集元素。
		
		c.retainAll(c2); //保留c集合與c2的交集元素,其他的元素一併刪除。
		*/
		System.out.println("查看元素個數:"+c.size());
		
		System.out.println("集合的元素:"+ c);
		
		
	}
	
}
import java.util.ArrayList;
import java.util.Collection;

/*
判斷
	isEmpty() 
	contains(Object o) 
	containsAll(Collection<?> c)
*/

class Person{
	
	int id; 
	
	String name;

	public Person(int id, String name) {
		this.id = id;
		this.name = name;
	}

	@Override
	public String toString() {
		return "{編號:"+this.id+" 姓名:"+ this.name+"}";
	}
	
	@Override
	public boolean equals(Object obj) {
		Person p = (Person)obj;
		return this.id == p.id ;
	}
	
	
	//java規範: 一般重寫equlas方法我們都會重寫hashCode方法的。
	@Override
	public int hashCode() {
		return this.id;
	}
	
	
	
}


class Dog{}


public class Demo3 {
	
	public static void main(String[] args) {
		/*Collection c = new ArrayList();
		c.add("令計劃");
		c.add("徐才厚");
		c.add("周永康");
		System.out.println("判斷集合是否爲空元素:"+ c.isEmpty());
		System.out.println("判斷集合中是否存在指定的元素:"+ c.contains("薄熙來"));*/
		
		//集合添加自定義的元素
		Collection c = new ArrayList();
		c.add(new Person(110,"狗娃"));
		c.add(new Person(119,"狗剩"));
		c.add(new Person(120,"鐵蛋"));
		
		
		Collection c2 = new ArrayList();
		c2.add(new Person(110,"狗娃"));
		c2.add(new Person(119,"狗剩"));
		c2.add(new Person(104,"陳狗剩"));
		
		
		System.out.println("c集合有包含c2集合中的所有元素嗎?"+ c.containsAll(c2));
		
		
		//如果在現實生活中,只要身份證編號一致,那麼就爲同一個人。
		System.out.println("存在該元素嗎?"+c.contains(new Person(120,"陳鐵蛋"))); // 其實contains方法內部是依賴於equals方法進行比較的。
		System.out.println("集合的元素:"+ c);
		
		
	}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

/*
迭代
	toArray() 
*/
public class Demo4 {
	
	public static void main(String[] args) {
		/*Collection c = new ArrayList();
		c.add("令計劃");
		c.add("徐才厚");
		c.add("周永康");
		Object[] arr = c.toArray(); //把集合中的元素全部 存儲到一個Object的數組中返回。
		System.out.println("數組的元素:"+Arrays.toString(arr));*/
		
		
		Collection c = new ArrayList();
		c.add(new Person(110,"狗娃"));
		c.add(new Person(119,"狗剩"));
		c.add(new Person(120,"鐵蛋"));
		Object[] arr = c.toArray(); 
		//需求: 把編號是110的人信息 輸出。
		for(int i = 0 ; i<arr.length ; i++){
			Person p = (Person) arr[i];  //從Object數組中取出的元素只能使用Object類型聲明變量接收,如果需要其他 的類型需要進行強制類型轉換。
			if(p.id==110){
				System.out.println(p);
			}
		}
		
		
		
	}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章