Java——集合、迭代器

本文深入讲解Java集合框架的基础概念及核心组件,包括Collection接口及其子接口List和Set,重点介绍了ArrayList、LinkedList、HashSet等常用实现类的特点与应用场景,并探讨了迭代器与增强for循环的应用技巧。
摘要由CSDN通过智能技术生成

一、集合 介绍

集合是java中提供的一种容器,可以用来存储多个数据。
集合的长度是可变的。这与数组不同,数组的长度是固定的。

集合继承体系:
Collecton接口常用的子接口有:List接口、Set接口
 List接口常用的子类有:ArrayList类、LinkedList类
 Set接口常用的子类有:HashSet类、LinkedHashSet类

这里写图片描述

二、Colletion 常用方法

Collection接口中的方法是集合中所有实现类必须拥有的方法。

1、Object[] toArray()
集合中的元素,转成一个数组中的元素, 集合转成数组
返回是一个存储对象的数组, 数组存储的数据类型是Object

2、.size()方法, 返回值int
学习Java中三种长度表现形式
* 数组.length 属性 返回值 int
* 字符串.length() 方法,返回值int
* 集合.size()方法, 返回值int

3、boolean contains(Object o)
判断对象是否存在于集合中,对象存在返回true

4、void clear()
清空集合中的所有元素集合 容器本身依然存在

5、boolean remove(Object o)
移除集合中指定的元素

三、迭代器

A:迭代器概述

a:java中提供了很多个集合,它们在存储元素时,采用的存储方式不同。
我们要取出这些集合中的元素,可通过一种通用的获取方式来完成。

b:Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,
如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

c:每种集合的底层的数据结构不同,例如ArrayList是数组,LinkedList底层是链表,但是无论使用那种集合,我们都会有判断是否有元素
以及取出里面的元素的动作,那么Java为我们提供一个迭代器定义了统一的判断元素和取元素的方法

B、迭代器的代码实现

两个重要方法:
hasNext ()和 next()

      public class IteratorDemo {
        public static void main(String[] args) {
          Collection<String> coll = new ArrayList<String>();
          coll.add("abc1");
          coll.add("abc2");
          coll.add("abc3");
          coll.add("abc4");
          //迭代器,对集合ArrayList中的元素进行取出

          //调用集合的方法iterator()获取出,Iterator接口的实现类的对象
          Iterator<String> it = coll.iterator();
          //接口实现类对象,调用方法hasNext()判断集合中是否有元素
          //boolean b = it.hasNext();
          //System.out.println(b);
          //接口的实现类对象,调用方法next()取出集合中的元素
          //String s = it.next();
          //System.out.println(s);

          //迭代是反复内容,使用循环实现,循环的条件,集合中没元素, hasNext()返回了false
          while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
          }
        }
      }

四、增强for循环

  *  JDK1.5新特性,增强for循环
  *  JDK1.5版本后,出现新的接口 java.lang.Iterable
  *  Collection开是继承Iterable

格式:
  *      for( 数据类型  变量名 : 数组或者集合 ){
  *         sop(变量);
  *      }

代码:

 public static void function_1(){
        //for对于对象数组遍历的时候,能否调用对象的方法呢
        String[] str = {"abc","itcast","cn"};
        for(String s : str){
          System.out.println(s.length());
        }
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值