java基础(一)--集合类

第一讲 集合框架(体系概述)

一、为什么出现集合类

         面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

二、数组和集合类同是容器,有何不同?

       数组虽然也可以存储对象,但是长度是固定的,集合的长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。

三、集合类的特点

        集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

四、集合框架的构成   

     为什么会出现这么多的容器呢?

     因为每个容器对数据的存储方式都有不同。这个存储方式称之为:数据结构

     “容器”的理解:就是可以装对象的数据结构

   


第二讲 集合框架(共性方法)

    Collection是集合框架中的最大接口。但是在开发中常用的是它的几个子接口:List,Set,Queue,SortedSet.

               所属关系:

   Collection

                         List::元素是有序的,元素可以重复

 Set:元素是无序的,元素不可以重复

 Queue:队列接口

 SortedSet:可以对集合中的数据进行排序

  一、Collection接口中常见的操作

   1.添加元素

  add(Object obj);//add方法的参数类型是Object,以便接收任意类型对象。

     2.删除元素

                remove(Object obj)

removeAll(另一集合);//调用者只保留另一集合没有的元素

    clear();清空集合

       3.判断元素

      contains(Object object);//判断是否存在obj这个元素

  isEmpty();//判断是否为空

      4.获取个数,集合长度

               size();

       5.取交集

retainAll(另一集合) ;//调用者只保留两集合的共性元素。

注意:集合中村到户的都是对象的引用(地址)      

第三讲 集合框架(集合的输出方式)

一、迭代器

1.概述
      迭代式取出集合中元素的一种方式。
      对于集合的元素取出这个动作:
      当不能够用一个函数来描述,需要用定义多个功能来体现,所以就将取出这个动作封装成一个对象来描述。就把取出方式定义在集合的内部,这样取出方式就成了可以直接访问集合内部的元素。那么取出方式就被定义成了内部类。 而每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都具有共性内容:判断和取出。那么就将这些共性抽取。 那么这些内部类都符合一个规则(或者说是抽取出来的一个规则)。该规则就是Iterator.通过一个对外提供的方法:iterator();来获取集合的取出对象。
        因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。

2.迭代器的常见操作
    hasNext();//判断是否有一个元素,如果有返回true
    next();取出当前元素
    remove();移除当前元素
   注意:在迭代时循环中next每调用一次就要用hasNext()判断一次。

3.例子
			List<String> all = new ArrayList<String>();//实例化List接口
			all.add("1");//添加元素
			all.add("2");
			all.add("3");
		    Iterator<String>  iterator = all.iterator();//直接实例化Iterator接口
		    while(iterator.hasNext()){//依次判断是否还有元素
		    	System.out.println(iterator.next());
		    }
4.注意事项
    ①迭代器Iterator中的next()方法是自动向下取元素,每一次使用前要用hasNext()判断,要避免出现NoSuchElementException
     ②迭代器的next方法返回值类型是Object,所以要使用类型转换。

二、foreach

1.foreach的格式
 for(类 对象 :集合){
      //集合操作
}

2.例子
  
			List<String> all = new ArrayList<String>();//实例化List接口
			all.add("1");//添加元素
			all.add("2");
			all.add("3");
		    Iterator<String>  iterator = all.iterator();//直接实例化Iterator接口
		    for(String str : all){//使用foreach输出
		    	System.out.print(str);
		    }
	   

      

第三讲 List接口

一、概述

组成

        List:元素是有序的,元素可以重复。因为该集合体系有索引。

            |--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。

            |--LinkedList:底层使用的是链表数据结构。特点:增删速度很快,查询稍慢。

            |--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。

二、例子

 1.添加元素
			List<String> all = new ArrayList<String>();//实例化List接口
			
			all.add("Hello");//添加元素
			all.add("world");
			all.add("!");

2.删除元素
			all.remove(0);//删除指定位置的元素
			all.remove("Hello");//删除指定内容的元素

3.输出元素
			for(int i = 0;i < all.size();i++){//通过size()获得List中有元素个数
				
				System.out.println(all.get(i));//通过get()方法并给下标取得集合中的元素
				
			}

4.将集合变为对象数组
			Object obj[] = all.toArray();//将集合变为对象数组
			for(int j = 0;j<obj.length;j++){
				String temp = (String)obj[j];
				System.out.println(temp);
			}

5.判断集合是否为空
//判断集合是否为空
			System.out.println("集合是否为空:"+ all.isEmpty());

6、判断集合中是否存在某个内容
			//判断集合中是否存在某个内容
			System.out.println(all.contains("Hello") ?  "Hello存在":"Hello不存在");

7.根据下标取出集合中的部分内容
			//根据下标取出集合中的部分内容
			List<String> allSub = all.subList(2, 3);

8.取得某个元素的下标
			//取得某个元素的下标
			System.out.println("Hello的位置:"+all.indexOf("Hello"));

9.迭代输出
		    Iterator<String>  iterator = all.iterator();//直接实例化Iterator接口
		    for(String str : all){//使用foreach输出
		    	System.out.print(str);
		    }












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值