黑马程序员:Collection集合类

本文深入探讨了Java集合框架中的核心概念,包括ArrayList、LinkedList及Vector等List实现的特点与适用场景,以及Set接口下HashSet如何确保元素唯一性。此外,还介绍了集合类的主要操作方法,并对比了不同集合类型的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ---------------------- 

集合类中,每个容器对数据的存储方式不同,这个存储方式称为:数据结构

import java.util.*;
class Collection Demo
{
    public static void main(String[] args)
{
    ArrayList al=new ArrayList();//创建一个集合容器
    al.add("java01");//添加元素
    sop("size:"+al.size());//获取个数,集合长度
    sop(al);//打印集合


}
   public static void sop(Object obj)
{
   System.out.println(obj);
}

}


1、add方法的参数类型是object,以便于接收任意类型对象

2、集合中存储的都是对象的引用(地址)

al.remove("java01");//删除元素
al.clear();//清空集合
sop("java01是否存在:"+al.contains("java01"));//判断元素
sop("集合是否为空?"+al.isEmpty());//集合是否为空
al1.retainAll(al2);//取交集,al1只会保留和al2中相同元素
al1.removeAll(al2);//去补集


元素的取出

public static void method_get()
{
   ArrayList al=new ArrayList();
   al.add("java01");
   al.add("java02");

   Iterator it=al.iterator();//获取迭代器,用于取出集合中的元素 迭代器:其实就是集合的取出元素的方式
    whiel(it.hasnext())//判断是否还有元素
{
    sop(it.next);

}


}


list:元素有序的,元素可以重复,因为该集合体有索引

特有的方法--凡是可以操作角标的方法都是该体系特有的方法

add(index,element);

remove(index);

set(index,element);

get(index);

list集合特有的迭代器,ListIterator是Iterator的子接口,在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生异常,所以在迭代时只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator,该接口只能通过List集合的ListIterator方法获取。

 

List

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

2、LinkList:底层使用的是链表数据结构,特点:增删速度快,查询慢

3、Vector:底层是数组数据结构,线程同步

 

 

Set

Set集合功能和collection是一致的

常见子类HashSet:底层数据结构式哈希表

HashSst是如何保证元素的唯一性:通过元素的两个方法,hashCode和equals来完成,如果元素的HashCode值相同,才会判断equals是否为true,如果元素的HashCode值不同,才会调用equals

注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的HashCode和equals方法

 

学习心得:要先熟悉运用集合类Collection里主要的方法,才能更好地理解List和Set接口的其他方法操作,在以后的开发中灵活地应用。

 

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值