集合定義

 

.集合框架 :java

1.Java集合框架的三大接口:數組

Collection全部集合類的根接口。數據結構

Map映射接口,存放鍵值對。框架

Iterator遍歷集合的迭代接口。spa

2.Java的集合框架是由不少接口、抽象類、具體類組成的,都位於java.util包中。對象

.Collection接口排序

1.Collection<E>接口繼承

  Collection意即集合,是全部集合類的根接口,同時Collection接口是一個泛型接口。索引

2.方法:add(E): 添加對象;接口

        Iterator<E> iterator():生成迭代器對象,進而能夠迭代集合中的元素。

        int size();獲取集合中元素數量。

4.List 有序的集合,元素有序存入。

5.Set無重複的集合,即存入的元素不重複。

6.Queue隊列,jdk1.5版本新增接口,Queue實現了「先進先出」(FIFO)的存儲結構。QueueCollection的子接口,具備全部集合基本操做,除此以外,Queue還提供了一些新的插入、提取、查詢等方法。

.Map接口:

Map接口

   Map中保存的是鍵值對Map<key,Value> Key值不容許重複,若是重複,則覆蓋。

②經常使用方法

    put(K key,V value)該方法能夠將keyvalue存到Map對象

    get(Object key)該方法能夠根據key值返回對應的value

    size()返回Map對象中鍵值對的數量。

HashMap  較經常使用的Map集合類。 key值的hashCodeequals保證元素惟一性。

TreeMap  不只能夠保證key不重複,還能夠對value數據進行排序。

HashTable  jdk1.0中定義的類,實現同步。

4、List

1.繼承了Collection接口,而且擴展出屬於本身的方法;

2.List 集合中的元素都是與索引有關係的,所以List集合擴展的方法都是與索引有關係的。

3.add(int index,E)……添加元素在所對應的索引位置 。

4.List 是個接口,有三個實現的類:

ArrayList:爲數組列表,數據採用數組的方式存儲,使用連續內存存儲。ArrayListJava語言中可變長度數組的實現。

LinkedList:稱爲鏈表,該集合類型實現了「鏈表」的數據結構。值得一提的是,LinkedList不只實現了List接口,還實現了Queue接口,能夠說鏈表同時也能夠做爲一個隊列對象使用。使用方式與ArrayList相似。

VectorVectorJDK1.0版本中的集合類,後來修改成實現了List接口。Vector的功能幾乎均可以被ArrayList替代,主要區別是Vector是同步的,而ArrayList不是同步的。

5.ArrayList的經常使用方法:

add(Object  o);->集合中添加數據

remove(Object o)->刪除集合中的數據

add(int  index, Object element)->給集合中某個索引位置添加一個數據

get(int index)->獲取集合中某個位置的信息

6.LinkedList是以鏈表的方式存放的,每一個節點上存放的是數據信息。

①經常使用方法:

add(E element)—向鏈表末尾添加一個新的節點,該節點中的數據是參數element指定的對象。

add(int index, E element)—向鏈表的指定位置添加一個新的節點,該節點中的數據是參數element指定的對象。           

②擴展的方法:

addFirst(E element)—向鏈表的頭添加新節點,該節點中的數據是參數element指定的對象。

addLast(E element)—向鏈表的末尾添加新節點,該節點中的數據是參數element指定的對象。

7.ArrayListLinkedList的遍歷

for循環遍歷:經過索引值獲取所對應的數據信息

②加強for循環的遍歷:也是經過迭代器的方法獲取信息

③迭代器遍歷(Iterator):經過集合返回迭代器。

例:for循環遍歷

public class GenericsList {

public static void main(String[] args) {

//建立用戶對象

User user=new User("張三");

User user1=new User("李四");

//建立集合對象,存放用戶對象

List<User> userList=new ArrayList<User>();                                         

 

userList.add(user);

userList.add(user1);

for(int i=0;i<userList.size();i++){

   System.out.println(userList.get(i));

}

}

}

加強for循環:

public class GenericsList {

  public static void main(String[] args) {

//建立用戶對象

User user=new User("張三");

User user1=new User("李四");

//建立集合對象,存放用戶對象

List<User> userList=new LinkedList<User>();

userList.add(user);

userList.add(user1);

for(User userInfo:userList){

System.out.println(userInfo);

}

  }

}

5、Set接口

1.Set接口繼承了Collection接口。Set中所存儲的元素是不重複的,可是是無序的。

2.Set接口有兩個實現類:

HashSet底層是哈希碼值,基於HashMap實現的。HashSet類中的元素不能重複,即彼此調用equals方法比較,都返回false

TreeSet元素不重複,而且元素實現了排序。能夠給Set集合中的元素進行指定方式的排序。存儲的對象必須實現Comparable接口。

HashSet的經常使用方法:

   add(E o)將指定的元素添加到set

TreeSet的經常使用方法:

   add(E o):將指定的元素添加到 set(若是還沒有存在於該set中)。

   first():返回已排序set中當前的第一個(最小)元素。

   last():返回已排序set中當前的最後一個(最大)元素。

HashSetTreeSet的遍歷:加強for循環和迭代器遍歷。

例:加強for循環遍歷

public class SetExemple {

 public static void main(String[]

  args) {

   User user1=new User(「王輝");

   User user2=new User("qw");

   Set<User> userSet=new HashSet<User>();

   Set<User> userSet=new TreeSet<User>();

   userSet.add(user1);

   userSet.add(user2);

  //加強for循環遍歷

  for(User user:userSet ){

  System.out.println(

  user.getUserName());

  }

 }

}

6、Map集合的經常使用實現類

1.HashMap:元素的key值不能重複,即彼此調用equals方法,返回爲false。排列順序是不固定的。

2.TreeMap:全部的元素都保持着某種固定的順序,若是須要獲得一個有序的Map就應該使用TreeMapkey值所在類必須實現Comparable接口。

3.HashMapHashMap的經常使用方法

     put<key,value>>存放對象

     get(key);     >獲取key所對應的數據。

     keySet()      返回此映射中所包含的鍵的 set 視圖。

4.TreeMap適用於按天然順序或自定義順序遍歷鍵(key)

5.TreeMap根據key值排序,key值須要實現Comparable接口,實現compareTo方法。TreeMap根據compareTo的邏輯,對key進行排序。

例:根據字符串的字典順序。

User user1=new User("王敏");

User user2=new User("王輝");

TreeMap<String,User> tree=new TreeMap<String,User>();

tree.put(001", user1);

tree.put(002", user2);

相關文章
相關標籤/搜索