首页 > 代码库 > 黑马程序员——集合框架(一)

黑马程序员——集合框架(一)

package com.yang.ex;
 
import java.util.ArrayList;
 
/*集合类:
 * 面向对象语言的体现都在对象行使,为了方便对对象操作,集合就是最常见的储存对象
 * 
 * 数组与集合类的不同:
 * 数组的长度是固定的,并且类型是固定的的,但是集合的长度是可变的。数组中可以储存基本数据类型,但是集合智能存储对象
 * 
 * 集合类的特点:
 * 集合只用于储存对象,集合的长度是可变的。集合合一储存不同类型的对象
 * 每一个容器对数据的存储方式都有不同
 * 每一个存储方式称为数据结构
 * Collection是一个根接口
 * 去交集al1.retainAll(al2)
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * */
public class Exce3 {
 
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个集合容器,使用Collection接口的子类
ArrayList arrayList=new ArrayList();
 
//1.添加元素
arrayList.add("java22");
arrayList.add("java23");
arrayList.add("java24");
arrayList.add("java25");
//add方法的参数类型是Object,以便接受任意类型的对象;
//集合当中存储的都是对象的引用
//2.获取个数,集合长度
//打印集合
System.out.println(arrayList);
 
 
System.out.println("长度"+arrayList.size());
 
//删除元素
arrayList.remove("java25");//删除部分元素
arrayList.clear();//清空集合
System.out.println(arrayList);
}
 
}
package com.yang.ex;
//就把取出方式定义在集合的内部
//这样取出方式就可以直接访问集合内容的元素。
//那么取出方式就被定义成了内部类
//而每一个容器的数据结构不同,所以取出的动作细节也不一样。
//但是都有共性内容,判断和取出,那么可以将写共性抽取。
//这个规则就是Iterator通过一个Iteratro()方法取出
import java.util.ArrayList;
import java.util.Iterator;
//迭代器就是集合的取出元素的方式
import java.util.List;
public class Exer4 {
 
public static void main(String[] args) {
// TODO Auto-generated method stub
    ArrayList alArrayList=new ArrayList();
    alArrayList.add("01");
    alArrayList.add("02");
    alArrayList.add("03");
    alArrayList.add("04");
    Iterator iterator=alArrayList.iterator();//获取迭代器,用于取出集合中的元素
    System.out.println(iterator.hasNext());
    System.out.println(iterator.next());
    
}
}
 
/*
List集合特有的迭代器,ListIterator是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合中的元素
因为会发生异常
 
所以在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的
只能对元素进行判断,取出,删除的操作
如果想要其他的操作,如添加 修改等就要使用其子接口,ListIterator
该接口智能通过List的集合的ListIterator进行迭代
 
 
 
 
 
*/
 
/*
 * Collection
 * ---list:元素师有序的 ,元素师可以重复的,因为该集合体系有索引
 * 
 *    ----ArrayList:底层的数据结构使用的是数组结构 容量为10
 *      特点:查询速度最快,但是增删较慢
 *    ----LinkedList:底层使用的是链表数据结构
 *     特点:查询较慢,但是增删的速度很快
 *    -----Vector:底层是数组数据结构,线程同步。
 *        基本被ArrayList替代了
 *        
 *        
 * ---Set:元素师无序的,元素不可以重复。
 * list 也是一个抽取出来的接口
 * List
 * 特有的方法,凡事可以操作角标的方法都是该体系特有的方法
 * 增:
 * add(index,element)
 * addAll(index Collection);
 * 删
 * remove(index)
 *改
 *set(index,element)
 *查
 *get(index)
 *subList(from,to)
 *listInterator() 
 * 
 * 
 * */
//添加元素
ArrayList alArrayList=new ArrayList();
alArrayList.add("01");
alArrayList.add("02");
alArrayList.add("03");
alArrayList.add("04");
//在指定位置添加元素
alArrayList.add(1,"01");
System.out.println(alArrayList);
//删除指定位置的元素
alArrayList.remove(1);
//修改元素
alArrayList.set(1,"00?");
  //通过角标获取元素
System.out.println("get"+alArrayList.get(3));
//获取所有元素
for(int x=0;x<alArrayList.size;x++){
System.out.println(alArrayList.get(x));
}
 
//通过indexOfd获取对象的位置
System.out.println(alArrayList.indexOf("02"));
List subEs=alArrayList.subList(1, 3);//包含1不包含3
System.out.println(subEs);
//演示列表迭代器
ArrayList alArrayList1=new ArrayList();
    alArrayList.add("01");
    alArrayList.add("02");
    alArrayList.add("03");
    alArrayList.add("04");
    //在迭代过程中,准备添加或者删除元素
    Iterator iterator=alArrayList.iterator();
    while(iterator.hasNest()){
     Object object=iterator.next();
     if (object.equals("02")) {
alArrayList.add("05");
System.out.println(iterator);
System.out.println(object);
}
    }
}
}
 
 
 
 
 
 

详情请查看:http://edu.csdn.net/heima

黑马程序员——集合框架(一)