迭代器 Collection以及List接口

简介: 迭代器 Collection以及List接口

集合


 因为我们在有时存储数组时需要去给数组中在添加,但是数组的长度是固定的,不支持长度
 不断在变化对于这种情况java提供了一个集合框架,Collection<泛型>


集合的特点

 1.长度是可变的
 2.存储类型 , 存储的引用类型
 3.存储元素,可以存储任意类型的元素

Collection

通过API查询Collection

    Collection层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素
    一些collection允许有重复的元素,而另一些则不允许,一些collection是有序的,一些是无序的jdk不提供接口的任何直接实现:它提供更具体的子接口(如set和list)实现

接口的实例化:间接的或者直接的通过子实现类完成实例化

基本功能
  boolean add(E e) 给集合中添加元素
 boolean remove(Object o) 移除集合中的某个元素
 void clear()暴力删除,删除一个集合中的所有元素(慎用)
 boolean contains(Object o) 判断当前集合中是否包含指定的元素
 boolean isEmpty()  判断集合是否为空
 int size() 获取集合的元素数


Collection的高级功能
boolean addAll(Collection c):添加一个集合中的所有元素
boolean removeAll(Collection c):删除集合元素删除一个算删除
boolean containsAll(Collection c):包含一个集合中的元素 包含当前集合中的所有元素,则返true
boolean retainAll(Collection c):交集功能 
A集合对B集合取交集,A对象.retainAll(B对象); 交集的元素保存在A中
  boolean的返回值表达的意思是A集合中的数据是否发生变化,如果没有变化,就是false,化,true


迭代器
  集合提供了专有遍历元素的方式:迭代器
  Iterator iterator():获取迭代器 返回值类型接口
  Iterator接口方法:
  Object next()获取下一个元素
  boolean hasNext():判断是否有下一个可以迭代(遍历)元素 



迭代器(作用:遍历集合中的元素)

迭代器接口Iterator
interface Iterator{
  boolean hasNext(); 判断
   Object next();获取
}
//顶层次接口
interface Iterable{
  抽象方法
  Iterator iterator();
}
interface Collection extends Iterable{
  Iterator iterator();
}
interface List extends Collection{
  Iterator iterator();
}
//子实现类
class ArrayList implements List{
   public Iterator iterator() {
        return new Itr(); //接口的子实现类
    } 
    //成员内部类
      private class Itr implements Iterator{
          public boolean hasNext(){
            重写;
          }
          //重写
      public  Object next(){
       }   
      }
}


迭代器遍历Collection集合

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Test1 {
  public static void main(String[] args) {
    //创建collection集合对象
    Collection c = new ArrayList();
    //给集合中添加元素
    c.add("呵呵");
    c.add("哈哈");
    c.add("嘻嘻");
    c.add("呜呜");
    //获取迭代器(作用:遍历集合中的元素)
    Iterator it = c.iterator();
    while (it.hasNext()) {
      String string = (String) it.next();
      System.out.println(string);
    }
  }
}


List

List 继承自Collection 就会有Collection的迭代器的功能


List集合特点:
1)允许元素重复
2)存储和取出一致的(有序性)


List集合的特有功能
void add(int index,Object element):在指定位置处添加一个新的元素element
Object remove(int index):删除指定位置处的元素
Object get(int index):获取指定位置处的元素
Object set(int index,Object element):在指定位置处设置(修改)元素


ListIterator
 ListIterator listIterator():列表迭代器
  ListIterator的成员方法
  boolean hasNext()
  Object next()


列表迭代器遍历list集合

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Test3 {
  public static void main(String[] args) {
    //创建一个List集合对象
    List list = new ArrayList();
    //添加元素
    list.add("娃哈哈");
    list.add("农夫山泉");
    list.add("爽歪歪");
    list.add("ad");
    //获取列表列表迭代器
    ListIterator li = list.listIterator();
    while (li.hasNext()) {
      String string = (String) li.next();
      System.out.println(string);
    }
    for (int i = 0; i < list.size(); i++) {
      String string = (String) list.get(i);
      System.out.println(string);
    }
  }
}


目录
相关文章
|
2月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
2月前
|
编译器
【Bug记录】list模拟实现const迭代器类
【Bug记录】list模拟实现const迭代器类
|
11天前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
24 5
|
4月前
|
存储 Java 测试技术
滚雪球学Java(57):解密Java中List接口底层实现原理
【6月更文挑战第11天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
38 2
滚雪球学Java(57):解密Java中List接口底层实现原理
|
3月前
|
文字识别 Java
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
|
4月前
|
编译器 C语言 C++
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
|
3月前
|
前端开发
若依修改,配置了一个接口路径出现了,如何放通接口{ “msg“: “请求访问:/code/list,认证失败,无法访问系统资源“, “code“: 401}
若依修改,配置了一个接口路径出现了,如何放通接口{ “msg“: “请求访问:/code/list,认证失败,无法访问系统资源“, “code“: 401}
|
5月前
|
存储 安全 Java
Java的List、Set、Queue等接口及其实现类的技术性文章
Java的List、Set、Queue等接口及其实现类的技术性文章
30 1
|
4月前
|
C++ 容器
【c++】优先级队列|反向迭代器(vector|list)
【c++】优先级队列|反向迭代器(vector|list)
26 0
|
5月前
|
C语言 容器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(下 )
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
24 1