首页 > 代码库 > 集合框架(六)

集合框架(六)

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 }
代码示例

 

集合框架(六)