1. 程式人生 > >集合框架(六)

集合框架(六)

boolean arraylist 註意 table love opened set add iter

1.集合框架
        Collection           Map
       List   Set          HashMap
  ArrayList   LinkesList         HashSet


2.List的方法
  List <元素類型> list=new ArrayList<元素類型>();
  list.add(元素); //添加元素
  list.add(index,元素); //向指定的位置插入元素
  list.remover(下標); //刪除指定下標的元素
  list.remover(元素); //刪除指定元素
  list.get(index); //獲取指定下標的元素
  list.contains(元素); //集合中是否包含指定元素

運行結果:

技術分享

技術分享
 1 package Day13七;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.List;
 6 
 7 public class Test1 {
 8     public static void main(String[] args) {
 9         //可重復,有序(不唯一,有序)
10         List<String> list=new ArrayList<String>();
11         list.add("aaa");
12 list.add("bbb"); 13 list.add("aaa"); 14 //向指定位置,插入元素 15 list.add(1,"ccc"); 16 //獲得指定位置元素的值 17 String val=list.get(0); 18 //刪除指定位置值(返回刪除掉的值) 19 String val1=list.remove(1); 20 //是否包含指定元素 21 boolean flag=list.contains("bbb"); 22 23
System.out.println(val); 24 System.out.println(list); 25 System.out.println(flag); 26 } 27 }
代碼示例


3.Collection,List,Set的區別
  Collection:不唯一,無序
  List:不唯一,有序
  Set:唯一,無序


4.ArrayList和LinkedList的區別
  a.都實現了List
  b.ArrayList是可變長數組方式實現,查詢效率高
    LinkedList是鏈表方式實現,增加和刪除效率高


5.List常用方法
  List<Object> list=new ArrayList<Object>();
  list.add(obj); //添加元素
  list.get(key); //獲取指定key元素
  list.size(); //長度
  list.remover(obj); //刪除指定元素
  list.containKey(key); //是否包含指定key


6.Map常用方法(鍵值對方式存儲數據)
  Map<Object,Object> maps=new HashMap<Object,Object>();
  maps.put(key,value); //增加元素
  maps.get(key); //獲取指定key的值
  maps.size(); //長度
  maps.remove(key); //刪除指定元素
  maps.containsKey(key); //是否包含指定key
  註意:key是唯一的,如果重復那麽後面的會覆蓋前面的
    value是可以重復的

運行結果:

技術分享

技術分享
 1 package Day13七;
 2 
 3 public class Penguin extends Pet{
 4     String name="無名氏";        //昵稱
 5     String sex="Q仔";            //性別
 6     
 7     public Penguin() {
 8 
 9     }
10     public Penguin(String name,String sex){
11         this.name=name;
12         this.sex=sex;
13     }
14     
15     /**
16      * 輸出企鵝的信息
17      */
18     public void print(){
19         System.out.println("寵物的自白:\n我的名字叫"+this.name+",性別是"+this.sex+"。");
20     }
21 
22     public String getName() {
23         return name;
24     }
25 
26     public void setName(String name) {
27         this.name = name;
28     }
29 
30     public String getSex() {
31         return sex;
32     }
33 
34     public void setSex(String sex) {
35         this.sex = sex;
36     }
37     @Override
38     public String toString() {
39         return sex+" "+getName();
40     }
41     
42 }
企鵝類 技術分享
 1 package Day13七;
 2 
 3 public class Pet {
 4     private int age;                    //年齡
 5     private String name;                //昵稱
 6     private int health;                    //健康值
 7     private int love;                    //親密度
 8     public Pet() {
 9         
10     }
11     //打印信息
12     public void print(){
13         System.out.println("名字:"+this.name+",年齡:"+this.age+",健康值:"+this.health+",親密度:"+this.love);
14     }
15     
16     public int getAge() {
17         return age;
18     }
19     public void setAge(int age) {
20         this.age = age;
21     }
22     public String getName() {
23         return name;
24     }
25     public void setName(String name) {
26         this.name = name;
27     }
28     public int getHealth() {
29         return health;
30     }
31     public void setHealth(int health) {
32         this.health = health;
33     }
34     public int getLove() {
35         return love;
36     }
37     public void setLove(int love) {
38         this.love = love;
39     }
40     
41 }
父類 技術分享
 1 package Day13七;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 
 6 public class TestMap {
 7     public static void main(String[] args) {
 8         //key--->value
 9         //名字-->企鵝
10         Map<String,Penguin> maps=new HashMap<String,Penguin>();
11         //增加
12         Penguin p=new Penguin();
13         p.setName("歐歐");
14         p.setSex("男");
15         maps.put("歐歐", p);
16         
17         Penguin p1=new Penguin();
18         p1.setName("灰灰");
19         p1.setSex("男");
20         maps.put("灰灰", p1);
21         
22         //取值
23         //maps.get(key)
24         Penguin p2=maps.get("歐歐");
25         p2.print();
26         
27         //大小
28         System.out.println(maps.size());
29         //是否包含key
30         System.out.println(maps.containsKey("歐歐"));
31         //刪除
32         maps.remove("歐歐");
33         
34         System.out.println(maps);
35     }
36 }
測試類


7.vector和ArrayList的異同
  實現原、功能相同,可以互用
  主要區別
    vector線程安全,ArrayList重速度輕安全,線程非安全
    長度需增長時,vector默認增長一倍,ArrayList增長50%


8.Hashtable和HashMap異同
  實現原、功能相同,可以互用
  主要區別
    Hashtable繼承Dictionary類,HashMap實現Map接口
    Hashtable線程安全,HashMap線程非安全
    Hashtable不允許null值,HashMap允許null值

線程是程序中一個單一的順序控制流程。進程內一個相對獨立的、可調度的執行單元,
是系統獨立調度和分派CPU的基本單位指運行中的程序的調度單位。在單個程序中同
時運行多個線程完成不同的工作,稱為多線程。
單線程在程序執行時,所走的程序路徑按照連續順序排下來,前面的必須處理好,後面的才會執行。
單線程就是進程只有一個線程
多線程就是進程有多個線程

9.集合的叠代
  語法:Iterator<Object> it=集合.iterator();
    while(it.hasNext()){
      Object obj=it.next();
    }
    is.hasNext(); //判斷是否有下一個元素
    it.next(); //移動指針,返回指針指向元素
  註意:集合在遍歷的過程中不能進行修改,如果進行了修改操作,那麽就會拋出ConcurrentModificationException異常,
     如果需要進行刪除,使用叠代器的it.remove()方法

運行結果:

技術分享

技術分享
 1 package Day13七;
 2 
 3 import java.util.Collection;
 4 import java.util.HashMap;
 5 import java.util.Iterator;
 6 import java.util.Map;
 7 import java.util.Set;
 8 
 9 public class Test5 {
10     public static void main(String[] args) {
11         Map<String,String> maps=new HashMap<String,String>();
12         maps.put("a", "A");
13         maps.put("b", "B");
14         maps.put("c", "C");
15         
16         //Iterator叠代器
17         Iterator<String> it=maps.keySet().iterator();
18         //hasNext:判斷下一個是否有值
19         while(it.hasNext()){
20             //移動下標,並返回當前值
21             String str=it.next();        //取key
22             System.out.println(str); 
23             if(str.equals("a")){
24                 it.remove();
25             }
26             System.out.println(str);
27         }
28         
29         //Iterator叠代器
30         Iterator<String> its=maps.values().iterator();
31         //hasNext:判斷下一個是否有值
32         while(its.hasNext()){
33             //移動下標,並返回當前值
34             String str1=its.next();        //取values
35             System.out.println(str1);
36         }
37     }
38 }
代碼示例

集合框架(六)