集合簡概

集合框架學習理由:

Java是面向對象的語言,Java的大部分應用都涉及到對存儲對象的增,刪,查,改操作。

數組可以用來存儲多個對象,由於數組的長度固定,對於對象的增刪改操作非常麻煩,而集合類則能夠滿足我們的需求。

 

數組和集合的區別:

長度

數組的長度固定不變,不能做更改。

集合長度是可以根據實際需要做更改。

內容

數組存儲的必須是同一種類型的元素。

集合可以存儲不同類型的元素,沒有限定。

數據類型

數組可以存儲基本數據類型,也可以存儲引用數據類型。

集合只能存儲引用類型,雖然不能存儲基本數據類型,但是可以存儲基本數據類型的包裝類類型。

 

集合是一套框架,必須具備以下方法,且頂層父類應該設計成接口,用來完成數據的增,刪,查,改操作。

 

特點:

1.集合是有序的(存儲有序)

2.有索引,方便查找和修改

3.List集合可重複

4.允許存儲null值

所有方法:

添加

boolean add(Object obj) 往集合裏增加某個元素;

boolean addAll(Collection c) 將另一個集合增加到某一個集合裏;

void add(int index, E element) 從某節點插入某一個元素;

boolean addAll(int index, Collection<? extends E> c)

 

刪除

void clear() 清除集合內所有元素;

boolean remove(Object o) 移除某一個元素;

boolean removeAll(Collection<?> c) 移除集合內所有元素;

Object remove(int index) 從某節點移除某一個元素;

 

修改

Object set(int index, E element)

 

遍歷

Object[] toArray()

Iterator<E> iterator()

<T> T[] toArray(T[] a)

ListIterator<E> listIterator()

ListIterator<E> listIterator(int index)

 

判斷

boolean contains(Object o) 是否含有某一個元素

boolean containsAll(Collection<?> c) 是否含有某個集合

boolean isEmpty() 集合是否爲空

 

其他

boolean retainAll(Collection<?> c)

 

獲取

int size() 獲取集合長度;

int indexOf(Object o)

Object get(int index)

int lastIndexOf(Object o)

List subList(int fromIndex, int toIndex)

 

應用案例:

 

import java.awt.List;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

 

public class kookv0427 {

private static Object Idol;

 

public static void main(String[] args) {

// 創建容器

Collection c1 = new ArrayList();

// 創建愛豆元素對象:姓名,年齡,定位

Idol i1 = new Idol("金南俊",26,"rap");

Idol i2 = new Idol("金碩珍",28,"vocal");

Idol i3 = new Idol("閔玧其",27,"rap");

Idol i4 = new Idol("鄭號錫",26,"rap");

Idol i5 = new Idol("樸智旻",25,"vocal");

Idol i6 = new Idol("金泰亨",25,"vocal");

Idol i7 = new Idol("田柾國",23,"vocal");

Idol i8 = new Idol("方時赫",48,"PD");

Idol i9 = new Idol("方時赫",48,"PD");

// 將元素對象儲存到集合中

c1.add(i1);

c1.add(i2);

c1.add(i3);

c1.add(i4);

c1.add(i5);

c1.add(i6);

c1.add(i7);

c1.add(i8);

c1.add(i9);

// 遍歷集合

Iterator it = c1.iterator();

while (it.hasNext()) {

Object ob = it.next();

Idol i = (Idol) ob;

System.out.println(i);

}

// 去除重複元素

// 1、創建新容器

Collection c2 = new ArrayList();

// 2、遍歷舊集合

for (Object ob : c1) {

// 3、判斷新集合是否存在這個元素

if (!c2.contains(ob)) {

// 4、如果新集合不存在這個元素就儲存到新集合中

c2.add(ob);

}

}

System.out.println("--------------------------------");

 

// 5、遍歷新集合查看是否去除重複元素

for (Object object : c2) {

System.out.println(object);

}

System.out.println("--------------------------------");

// 6、移除方時赫!

System.out.println(c2);

System.out.println("remove:" + c2.remove(i8));

for (Object object : c2) {

System.out.println(object);

}

//            遍歷集合
//            方法一:
            Object[] obs = c2.toArray();
            for(Object object : obs) {
                System.out.println(object);
            }
            
            System.out.println("--------------------------------");
//            方法二:
            Iterator<Object> it1 = c2.iterator();
            while (it1.hasNext()) {
                Object object = it1.next();
                System.out.println(object);                
            }
            
            System.out.println("--------------------------------");
//            方法三:
            for(Iterator<Object> iterator = c2.iterator();iterator.hasNext();System.out.println(iterator.next()));
            
            System.out.println("--------------------------------");
//            方法四:
            for (int i = 0; i < c2.size(); i++) {
                System.out.println(((ArrayList<Object>) c2).get(i));
            }

            System.out.println("--------------------------------");
//            方法五:
            for(Object object : c2){
                System.out.println(object);
            }    
 

}

}

 

class Idol{

private String name;

private Integer age;

private String work;

@Override

public String toString() {

return "Idol [name=" + name + ", age=" + age + ", work=" + work + "]";

}

public Idol(String name, Integer age, String work) {

super();

this.name = name;

this.age = age;

this.work = work;

}

public Idol() {

super();

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

        public String getWork() {
            return work;
        }

        public void setWork(String work) {
            this.work = work;
        }

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Idol other = (Idol) obj;

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

return true;

}

}



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