Java高级学习-集合

举报
AAAI 发表于 2021/04/02 02:41:05 2021/04/02
【摘要】 集合是java中提供的一种工具,可以用来存储多个数据, 集合重写了toString,可以直接打印集合元素 集合与数组的区别: 集合长度可变,数组长度固定。数组存储同一种类型元素,存储值或者对象(引用类型),集合只能存储对象,且对象类型可以不一致。 集合框架 Collection接口:共性方法,没有带索引的方法。 List接口:有序的集合,取出元素顺序相同,允...

集合是java中提供的一种工具,可以用来存储多个数据,

集合重写了toString,可以直接打印集合元素

集合与数组的区别:

  • 集合长度可变,数组长度固定。
  • 数组存储同一种类型元素,存储值或者对象(引用类型),集合只能存储对象,且对象类型可以不一致。

集合框架

Collection接口:共性方法,没有带索引的方法。

List接口:有序的集合,取出元素顺序相同,允许重复元素,有索引。

Vector,ArraryList,LinkedList

Set接口,不允许存储重复元素,没有索引

TreeSet(无序),HashSet(无序),LinkedHashSet(有序)

List接口:有序的集合(取出元素顺序相同),允许重复元素,有索引。

目标:存储数据,遍历集合,集合特性

Collection功能

所有单列集合最顶层的接口。共性方法,单列集合

创建集合对象,可以使用多态:

Collection coll = new Arraylist<>;

boolean add ;coll.add(" xx ");

boolean remove

boolean contains(E e):判断当前集合是否包含指定元素

boolean isEmpty()

int size()

Object[ ] toArray()把集合中的元素,存储到数组中

void clear( ) 清空集合元素,不删除元素

Iterator迭代器

接口:迭代访问(遍历)集合的元素。

迭代,再取元素前先判断集合中有没有元素,如果有就取出来,再继续判断,直到取完。

public Iterator iterator ( )

boolean hasNext( ) : 如果还有元素可以迭代,返回true

E next():返回迭代的下一个元素,把指针向后移动一位

Iterator迭代器是一个接口,需要Iterator接口的实现类,获取方式为:Collection接口中有一个方法叫 iterator( ) ,这个方法返回的是迭代器的实现类对象。

Iterator<> iterator( ) 返回此Collection的元素上进行迭代的迭代器。

1.使用集合中的方法iterator( ) 获取迭代器的实现类对象,使用Iterator接口进行接收(多态)

Iterator 接口也是有泛型的,跟着集合的泛型类型走。

Iterator a = coll.Iterator( ); //获取迭代器的实现类多想,把指针(索引)指向集合的-1索引。

2.使用Iterator接口的方法hasNext判断还有没有下一个元素,有就用Next取出来。

迭代器取出集合元素可以使用循环优化,但不知道循环元素大小,使用while

while(a.hasnext() ){ String s = a.next() ;  }
for( Iterator<String>  a = coll.Iterator( );  a.hasnext() ; ) { String s = a.next() ;  }
//因为next()会移动指针,所以for的步进表达式不用写。

  
 
  • 1
  • 2
  • 3

增强for

底层使用的迭代器,使用for循环简化迭代器格式。

遍历集合和数组,public Iterator iterator 实现这个接口允许对象成为foreach语句的目标。

for( 集合/数组的数据类型 变量名 : 集合名/数组名 ) { sout ( 变量名 ) ; }

注意:这个for循环必须有目标,且为集合/数组。

作业

简述迭代器的实现原理

当遍历集合时,首先通过调用集合的iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。

Iterator迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素,在调用Iterator的next()方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,当再次调用next方法时,迭代器的索引会指向第二个元素并将该元素返回,依此类推,直到hasNext方法返回false,表示到达了集合的末尾,终止对元素的遍历。

文章来源: blog.csdn.net,作者:αβγθ,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_38022166/article/details/115381844

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。