【Mark学Java】 Collection(一)

概念

集合:集合是java中提供的一种容器,可以用来存储多个数据.

集合数组区别在于:

数组的长度时固定的,集合的长度时可变的.

数组中存储的是同一类型的元素,可以存储基本数据类型值和对象.集合存储的都是对象(对象类型可以不一致).在开发中一般当对象多时,使用集合进行存储.

int[] arr=new int[10];
Student[] arr=new Student[3];
ArrayList<Student>=new ArrayList();

集合框架

在这里插入图片描述
单列集合分类
Collection一个独立元素的序列,这些元素都服从一条或多条规则.
-List一个有序的集合(存取与取出元素顺序相同),允许存储重复的元素,有索引,可以使用普通的for循环遍历.
-Set不允许存储重复元素,无索引(不能使用普通的for循环遍历)
----HashSet TreeSet,无序集合(存储和取出元素的顺序有可能不一致)
----LinkedHashSet有序集合

单列集合特点

有序性有无索引底层实现
List有序存取有索引\
ArrayList有序存取有索引数组(查询快,增删慢)
LinkedList有序存取有索引链表(查询慢,增删快)
Set无序存取无索引\
HashSet无序存取无索引哈希表+红黑树
LinkedHashSet有序存取无索引哈希表+链表
TreeSet\\二叉树(用于排序)

Collection

无带索引方法
public boolean add(E e)把给定对象添加到当前集合中.
public void clear()清空集合中所有元素.
public boolean remove(E e)把给定对象从集合中删除.
public boolean contains(E e)判断当前集合中是否包含给定的对象.
public boolean isEmpty()判断当前集合是否为空.
public int size()返回集合中元素的个数.
public Object[] toArray()把集合中的元素,存储到数组中.
Iterator<E> iterator()返回在此Collection的元素上进行的迭代器

    public static void main(String[] args) {
        //使用多态创建集合
        Collection<String> coll = new ArrayList<>();
        //重写toString(),输出[ ]
        System.out.println(coll);
        //add()一般情况返回值为true
        boolean b1 = coll.add("Mark");
        coll.add("Love");
        coll.add("Programming");
        //remove() 集合中存在元素返回true,不存在元素返回false
        boolean programming = coll.remove("Programming");
        //contains()包含返回true,否则返回false
        coll.contains("Mark");
        //判断当前集合是否为空
        coll.isEmpty();
    }

Iterator

迭代:即Collection集合元素的通用获取方式.在取元素之前判断集合中是否有元素,有则取出,无则继续判断,直到所有元素被取出.

通过获取Iterator接口的实现类对象(iterator(),Collection接口中)

boolean hasNext()如果仍然有元素可以迭代,返回true
E next()返回迭代的下一个元素

Collection<String> coll=new ArrayList<>();
coll.add("a");
coll.add("b");
coll.add("c");
/*1.使用集合中方法iterator()获取迭代器实现类对象,使用Iterator接口接收(多态)
注意:Iterator<E>接口泛型跟着集合走
*/
Iterator<String> it=coll.iterator();
//2.使用hasNext()判断是否还有元素
while(it.hasNext()){
   //3.使用Iterator接口中方法next()取出下一个元素
   String str=it.next();
   System.out.prinln(str);
}
//PS:了解for循环使用迭代器
for(Iterator<String> it=coll.iterator();it2.hasNext();){
   String e=it2.next();
   System.out.println(e);
}

迭代器原理
hasNext() 判断有无下一元素
next() 1.取出下一个元素 2.指针向后移动
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值