集合的简单介绍

本文介绍了Java集合框架中的三种主要集合类型:List(列表)、Set(集)和Map(映射)。详细探讨了每种集合的特点、应用场景及其实现类,如ArrayList、HashSet、TreeSet等。

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

java的三大集合list(列表),set(集),map(映射)

其中list和set实现了collection

collection是最基本的集合接口,声明了适用于java集合(只包括set和list)的通用方法。set和list都集成了collection,map没有

 

set(集合)

set是最简单的一种集合。集合中的对象是无序的,并且不能重复。

set主要实现了俩个实现类:

hashset:HashSet类按照哈希算法来存取集合中的对象,存取速度比较快

HashSet实现了set接口,他不允许集合中出现重复元素。当我们提到HashSet时,第一件事就是在将对象存储在HashSet之前,要确保重写HashCode()方法和equals()方法,这样才能比较对象的值是否相等,确保集合中没有存储相同的对象。如果不重写上述俩个方法,那么将执行hashSet中的默认实现方法:

public boolean add(E e) {
    return map.put(e, PRESENT)==null;
}

HashSet的底层是用HashMap实现的在添加时使用HashMap进行判断

 

TreeSet:TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

public boolean add(E e) {
    return m.put(e, PRESENT)==null;
}

它的添加同样底层是使用map进行添加的

TreeSet实现的是NavigableSet接口,但是他的方法实现使用的却是NavigableMap;

 

 

List(列表):

List的特征是其元素以线性方式存储,集合中可以存放重复对象。

List接口主要实现类包括:

ArrayList():长度可以改变的数组。可以对元素进行随机访问。

向Arraylist()中插入与删除元素的速度慢

List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//普通的循环
for (int i=0;i<list.size();i++){
    System.out.println(list.get(i));
}
//迭代器
Iterator iterator = list.iterator();
while (iterator.hasNext()){
    System.out.println(iterator.next());
}
//foreach循环遍历
for (Object s: list) {
    System.out.println(s);
}

LinkedList():在实现中采用链表数据结构。插入和删除速度忙,访问速度慢

private LinkedList<String> linkedList  = new LinkedList<String>();
/**
 * 将元素加入LinkedList容器
 * (即插入到链表的第一个位置)
 */
public void push(String name){
    linkedList.addFirst(name);
}
/**
 * 取出堆栈中最上面的元素
 * (即取出链表linkedList的第一个元素)
 * @return
 */
public String getTop(){
    return linkedList.getFirst();
}
/**
 * 取出并删除最上面的元素
 * (即移出linkedList的第一个元素)
 * @return
 */
public String pop(){
    return linkedList.removeFirst();
}
/**
 * 获取元素个数
 * @return
 */
public int size(){
    return linkedList.size();
}
/**
 * 判断堆栈是否为空
 * (即判断 linkedList是否为空)
 * @return
 */
public boolean isEmpty(){
    return linkedList.isEmpty();
}
public void  add(String name){
    linkedList.add(name);
}
//测试
public static void main(String[] args) {
    LinkedListTest stack = new LinkedListTest();
    stack.add("123");
    stack.add("aaa");
    stack.add("bbb");
    stack.push("yulon");
    stack.push("xiaoyun");
    stack.push("羽龙共舞");
    System.out.print("第一个元素是:\t");
    System.out.println(stack.getTop());
    System.out.println();
    System.out.println("全部元素:");
    while(!stack.isEmpty()){
        System.out.println("\t"+stack.pop());
    }
}

Vector():它是一个队列,支持相关的添加删除修改遍历等功能。

Vector中的操作是线程安全的。

Vector的默认容量大小是10

当Vector的容量不足以容纳全部元素时,Vector的容量会增加。若容量增加系数>0,则将容量的值增加“容量增加系数”;否则,将容量大小增加一倍。

 

map(映射):(map不想list和set它没有继承collection)

Map集合是双列集合,Map中的集合是成对存在的,每个元素由建和值组成,通过建可以找到对应的值。

注意:Map中的集合不能包含重复的键,值可以重复。每个键只能对应一个值。

Map集合不能直接使用迭代器或者foreach进行遍历,当时转成set之后就可以使用了。

Map接口主要的实现类:

HashMap:存储数据采用哈希表结构,元素的存取顺序不能保持一致。由于要保证键的唯一,不重复,需要重写键的hashcode()方法,equals方法。HashMap只支持一条记录的键为null;允许多条记录的值为null。

LinkeHashMap:HashMap下有个子类LinkeHashMap。

存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的取值顺序一致

通过哈希表结构可以保证键的唯一,不重复,需要重写hashcode()方法和equals()方法

HashTable:与HashMap类似,不同的是:键和值的值不允许为null;

它支持线程的同步,既任一时刻只有一个线程能写HashTable,因此也导致了HashTable在写入是会比较慢

TreeMap:能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器(Comparator),当用iterator便利TreeMap是,得到的记录是排序过的。TreeMap不允许键的值为null。

 

 

 

 

 

 

资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 无锡平芯微半导体科技有限公司生产的A1SHB三极管(全称PW2301A)是一款P沟道增强型MOSFET,具备低内阻、高重复雪崩耐受能力以及高效电源切换设计等优势。其技术规格如下:最大漏源电压(VDS)为-20V,最大连续漏极电流(ID)为-3A,可在此条件下稳定工作;栅源电压(VGS)最大值为±12V,能承受正反向电压;脉冲漏极电流(IDM)可达-10A,适合处理短暂高电流脉冲;最大功率耗散(PD)为1W,可防止器件过热。A1SHB采用3引脚SOT23-3封装,小型化设计利于空间受限的应用场景。热特性方面,结到环境的热阻(RθJA)为125℃/W,即每增加1W功率损耗,结温上升125℃,提示设计电路时需考虑散热。 A1SHB的电气性能出色,开关特性优异。开关测试电路及波形图(图1、图2)展示了不同条件下的开关性能,包括开关上升时间(tr)、下降时间(tf)、开启时间(ton)和关闭时间(toff),这些参数对评估MOSFET在高频开关应用中的效率至关重要。图4呈现了漏极电流(ID)与漏源电压(VDS)的关系,图5描绘了输出特性曲线,反映不同栅源电压下漏极电流的变化。图6至图10进一步揭示性能特征:转移特性(图7)显示栅极电压(Vgs)对漏极电流的影响;漏源开态电阻(RDS(ON))随Vgs变化的曲线(图8、图9)展现不同控制电压下的阻抗;图10可能涉及电容特性,对开关操作的响应速度和稳定性有重要影响。 A1SHB三极管(PW2301A)是高性能P沟道MOSFET,适用于低内阻、高效率电源切换及其他多种应用。用户在设计电路时,需充分考虑其电气参数、封装尺寸及热管理,以确保器件的可靠性和长期稳定性。无锡平芯微半导体科技有限公司提供的技术支持和代理商服务,可为用户在产品选型和应用过程中提供有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值