java面试题-集合篇
Collection
1.Collection有哪些类?
Java集合框架中的Collection接口是所有集合类的基础接口,定义了一些基本的集合操作,如添加元素、删除元素、判断是否包含某个元素等。常见的集合类包括List、Set和Queue。
List
List接口定义了按照索引访问和操作元素的方法。它允许元素重复,并且有序。在List中可以使用get()和set()方法访问指定位置的元素,使用add()和remove()方法添加和删除元素。
常见的List实现类有:
ArrayList:ArrayList 是一个基于动态数组的实现,支持随机访问,插入和删除操作效率低。
LinkedList:底层使用双向链表实现,插入和删除操作效率高,但随机访问效率低。
Vector:与ArrayList类似,但是线程安全,效率较低。
Set
Set接口表示一个不允许有重复元素的集合,实现类必须重写equals()方法和hashCode()方法。常见的Set实现类有:
HashSet:底层使用哈希表实现,无序,元素唯一。
LinkedHashSet:底层使用哈希表和链表实现,有序,元素唯一。
TreeSet:底层使用红黑树实现,有序,元素唯一。
Queue
Queue接口表示一个先进先出(FIFO)的队列。常见的Queue实现类有:
LinkedList:底层使用链表实现,效率较高,LinkedList实现了Queue接口,它支持在队列的头部和尾部进行元素的添加和删除操作,因此可以被用作栈、队列和双端队列。。
PriorityQueue:是一种基于优先级堆的Queue,它保证了每次取出的元素都是队列中优先级最高的元素。。
需要注意的是,这些集合类都是基于Object的,如果需要在集合中存储特定类型的元素,需要使用泛型。例如,List<String>表示一个只包含字符串元素的List。
2.讲一下ArrayList的底层实现?
ArrayList 的底层实现基于数组,它继承了 AbstractList 抽象类并实现了 List 接口。下面是一些关于 ArrayList 的底层实现的细节:
数组:ArrayList 的内部实现是一个数组,使用数组实现可以方便地进行随机访问,根据索引直接访问指定位置的元素。
自动扩容:ArrayList 可以自动扩容以适应动态变化的容量需求,每次扩容会增加 50% 的容量。
元素的添加:ArrayList 中的 add(E e) 方法会在末尾添加一个元素,如果当前容量不足,则会进行扩容。
元素的删除:ArrayList 中的 remove(int index) 方法会删除指定索引位置的元素,将该位置后面的元素向前移动一位。
3.ArrayList自动扩容的具体实现?
当调用ArrayList的add方法时,如果当前列表中的元素数量已经达到容量的极限,那么就需要自动扩容。扩容的过程就是创建一个新的数组,并将原来数组中的元素复制到新数组中。
默认情况下,ArrayList的容量是10。当第一个元素被添加时,内部数组会被初始化为长度为10的数组。当添加第11个元素时,原始数组将会被复制到一个新的长度为15的数组中,容量增加了50%。如果再添加元素,当超过了15个元素时,内部数组将再次扩容到新的长度为22的数组中。
当使用ensureCapacity方法增加数组容量时,ArrayList使用给定参数的最大值和当前容量的大小来决定新的容量大小。
private void ensureCapacityInternal(int minCapacity) {// 判断是否需要扩容if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity);}ensureExplicitCapacity(minCapacity);
}private void ensureExplicitCapacity(int minCapacity) {modCount++;// 判断是否需要扩容if (minCapacity - elementData.length > 0) {grow(minCapacity);}
}private void grow(int minCapacity) {int oldCapacity = elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1);if (newCapacity - minCapacity < 0) {newCapacity = minCapacity;}if (newCapacity - MAX_ARRAY_SIZE > 0) {newCapacity = hugeCapacity(minCapacity);}elementData = Arrays.copyOf(elementData, newCapacity);
}
扩容操作的代价是很高的,因此在实际使用时,我们应该尽量避免数组容量的扩张。当我们可预知要保存的元素的多少时,要在构造ArrayList实例时,就指定其容量,以避免数组扩容的发生。或者根据实际需求,通过调用ensureCapacity方法来手动增加ArrayList实例的容量。
4.ArrayList的Fail-Fast机制?
在 Java 中,如果使用集合类的迭代器来遍历集合元素,而同时修改了集合中的元素,就有可能会发生 ConcurrentModificationException 异常。这是因为 Java 集合类的迭代器是快速失败(fail-fast)机制,如果在迭代集合时集合发生了结构性变化(例如添加或删除元素),迭代器就会立即抛出异常,而不是等到迭代完成再抛出异常。
ArrayList 是一个支持随机访问的序列容器,底层使用数组实现,所以在对 ArrayList 进行并发操作时,可能会出现不同步的问题,因此 ArrayList 也使用了快速失败机制来保证线程安全。
具体来说,如果在对 ArrayList 进行迭代操作的同时,对其进行增删改操作,会导致 ArrayList 的 modCount(修改次数)和迭代器的 expectedModCount(预期的修改次数)不一致,迭代器会立即抛出 ConcurrentModificationException 异常。
以下是一个简单的示例代码,用来演示 ArrayList 快速失败机制的工作原理:
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7));
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {Integer element = iterator.next();if (element == 2) {list.remove(element);}
}
在上面的示例代码中,我们在迭代过程中删除了元素 2,这会导致 ConcurrentModificationException 异常的抛出。为了避免出现这种情况,我们可以使用 Iterator 的 remove() 方法来进行元素的删除,或者使用线程安全的集合类,例如 CopyOnWriteArrayList。
MAP
1.Map有哪些实现类?
Java中的Map接口定义了一个键值对映射的数据结构,可以通过给定的键快速查找对应的值。Map接口有很多实现类,常见的有以下几种:
HashMap:基于哈希表实现的Map,支持null键和null值,非线程安全的。
LinkedHashMap:基于哈希表和双向链表实现的Map,可以按照插入顺序或者访问顺序遍历键值对,非线程安全的。
TreeMap:基于红黑树实现的Map,键值对按照自然顺序或者自定义顺序排序,非线程安全的。
ConcurrentHashMap:线程安全的HashMap,使用分离锁来控制并发访问,支持高并发,可以通过一定的控制减小锁的竞争。
Hashtable:早期Java版本中提供的线程安全的哈希表,支持null键和null值,但是效率较低,已经被ConcurrentHashMap取代。
Properties:Hashtable的子类,用来读取和写入属性文件,通常用于读取配置文件。
除了以上这些常见的实现类,还有一些其他的实现类,比如WeakHashMap、IdentityHashMap、EnumMap等,不过它们使用的较少,一般只在特定场景下使用。
2.HashMap的底层实现(jdk7&jdk8)?
JDK7 的底层实现
在 JDK7 中,HashMap 是通过数组和链表的结合来实现的。其基本思路是:将 key 通过哈希函数映射为数组下标,将 value 存储在对应的数组元素中。如果不同的 key 映射到了同一个数组下标,就会以链表的形式存储在该数组元素中。
HashMap 在 JDK7 中的底层结构主要由两部分组成:一个 Entry 数组和一个链表。其中,Entry 是 HashMap 的基本单元,它包含了 key、value 和指向下一个 Entry 的指针。当使用 put() 方法向 HashMap 中添加元素时,会根据 key 的哈希值计算出在数组中的位置,然后将 Entry 添加到该位置的链表中。如果两个不同的 key 哈希值相同,那么它们会被放到同一个链表中,形成一个链表结构。这就是 JDK7 中 HashMap 的基本实现原理。
然而,这种实现方式有一个严重的问题:当链表过长时,查询效率会大大降低,因为需要遍历整个链表才能找到对应的元素。在极端情况下,当所有的元素都映射到了同一个数组下标,HashMap 的时间复杂度就会退化到 O(n),这就是所谓的哈希冲突问题。
JDK8 的底层实现
JDK8 中的 HashMap 对 JDK7 中的实现进行了优化,主要是通过引入红黑树来解决链表过长的问题。当链表长度超过一定阈值时(默认为 8),链表就会转换为红黑树。这样,在查询时,如果在链表中需要遍历的节点数量超过了阈值,就会使用红黑树进行快速查找,从而提高了查询的效率。
在 JDK8 中,HashMap 的底层结构主要由三部分组成:一个数组、一个链表和一个红黑树。当使用 put() 方法向 HashMap 中添加元素时,如果对应数组下标上已经存在元素,就会进行以下操作:
如果该元素是一个链表,就将新元素追加到链表的末尾。
如果该元素是一个红黑树,就在树中查找 key 对应的节点,然后将节点的 value 替换成新的 value。如果树中不存在对应的节点,就将新元素添加到树中。
如果该元素为 null,就直接在该数组的位置插入新的 Entry。
在 JDK8 中,HashMap 的 get() 方法的实现方式也发生了变化。在查询时,先根据 key 的哈希值计算出在数组中的位置,然后判断该位置上的元素是否为 null。如果为 null,则返回 null;如果不为 null,则判断该元素是链表还是红黑树。如果是链表,则遍历链表寻找对应的元素;如果是红黑树,则在树中进行查找。
![](https://img-blog.csdnimg.cn/img_convert/ac848290d41818022daac1dbf87430bd.png)
JDK8 中 HashMap 的优化主要体现在两个方面:
引入红黑树,解决链表过长的问题,提高了查询效率。当链表长度超过一定阈值时,将链表转换为红黑树,避免了链表过长时查询效率下降的问题。
除了对链表和红黑树的优化之外,JDK 8 还对哈希函数进行了改进。在 JDK 8 中,对于 key 的 hash 值,不再采用传统的取模运算(%)计算哈希桶的索引,而是采用了一种新的方式,使用 key 的 hash 值高位和低位进行异或运算,以此来增加哈希桶的分布性。这种新的方式能够更好地抵抗哈希冲突,从而提高了 HashMap 的性能。
HashMap 将插入元素时使用的方式从头插法改为了尾插法,更好地支持并发操作。在多线程环境下,头插法容易导致多线程竞争同一个桶位,从而导致链表成环。成环后会导致链表转换成红黑树的操作失败,进而影响整个 HashMap 的性能。而尾插法不会导致链表成环,因此在多线程环境下更为安全。
总的来说,JDK8 中 HashMap 的底层实现相比于 JDK7 发生了较大的变化,通过引入红黑树和优化哈希算法,提高了 HashMap 的性能和稳定性。
3.HashSet的底层实现?
HashSet 是基于 HashMap 实现的,底层是一个 HashMap 对象。在 HashSet 中,所有元素都是存储在一个 HashMap 的键上,而这个键的值则是一个静态的 Object 常量(通常是一个 dummy Object)。因此,HashSet 的实现过程可以简单概括为将所有元素作为 HashMap 的 key 存储,而 value 为一个静态的 Object 对象。
具体来说,HashSet 就是在 HashMap 的基础上去掉了 value,只保留了 key。在使用 HashSet 时,我们只需要调用 HashMap 的 put() 方法,把元素作为 key 插入 HashMap 中,value 则使用一个常量对象(例如 private static final Object PRESENT = new Object())来占位即可。
相比于 HashMap,HashSet 的实现过程更为简单,因为它只需要存储键而不需要存储值。因此,HashSet 在大多数情况下比 HashMap 更加高效。同时,由于 HashSet 也是基于 HashMap 实现的,因此它们的底层实现也非常相似,可以复用 HashMap 的很多特性。
以下是 HashSet 的部分源码:
public class HashSet<E>extends AbstractSet<E>implements Set<E>, Cloneable, java.io.Serializable
{// HashSet 底层就是一个 HashMap,所有元素作为 key 存储在 HashMap 中private transient HashMap<E,Object> map;// 常量对象,用于占位private static final Object PRESENT = new Object();public HashSet() {map = new HashMap<>();}public boolean add(E e) {return map.put(e, PRESENT)==null;}
}
可以看到,在 HashSet 中,我们只需要调用 HashMap 的 put() 方法来将元素插入到 HashMap 中。这样做的好处是可以节省很多重复代码,而且可以复用 HashMap 的很多特性。同时,由于 HashSet 只存储键而不存储值,因此在大多数情况下比 HashMap 更加高效。
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/ac848290d41818022daac1dbf87430bd.png)
java面试题-集合篇
Collection1.Collection有哪些类?Java集合框架中的Collection接口是所有集合类的基础接口,定义了一些基本的集合操作,如添加元素、删除元素、判断是否包含某个元素等。常见的集合类包括List、Set和Queue。ListList接口定义了按照索引访问和操…...
![](https://www.ngui.cc/images/no-images.jpg)
Python 异步: 同时运行多个协程(10)
asyncio 的一个好处是我们可以同时运行许多协程。这些协同程序可以在一个组中创建并存储,然后同时一起执行。这可以使用 asyncio.gather() 函数来实现。 让我们仔细看看。 1. 什么是 Asyncio gather() asyncio.gather() 模块函数允许调用者将多个可等待对象组合在一…...
![](https://img-blog.csdnimg.cn/f83835ce7ad94e4ba78e9124b5b23e41.png)
SVN 获取多版本间的更新内容
文章目录背景介绍操作步骤 - 获取某段时间内的代码更新内容背景介绍 公司有个项目期初明确要做微信小程序,没有做其他端的意向,并且当时团队人数有限,没有项目实践过 uniapp,项目时间周期紧,就没有用 uniapp 去实现 然…...
![](https://www.ngui.cc/images/no-images.jpg)
c++ const使用说明
作⽤ 1. 修饰变量,说明该变量不可以被改变; 2. 修饰指针,分为指向常量的指针和指针常量; 3. 常量引⽤,经常⽤于形参类型,即避免了拷⻉,⼜避免了函数对值的修改; 4. 修饰成员函数…...
![](https://www.ngui.cc/images/no-images.jpg)
VSTO 开发 EXCEL 委托与多线程的极简示例
VSTO 开发 EXCEL 委托与多线程的极简示例问题解决步骤代码问题 这几天做 excel 加载项时遇到一个问题,对话框弹窗显示后,需要等待网络数据的返回来填充 ListBox 控件,由于网络延迟问题,整个窗体连带 Excel 一起白屏卡顿 5-10秒&a…...
![](https://img-blog.csdnimg.cn/17a13e052f5741aea945e3351d0e78a4.png)
spring之使用Spring的AOP
文章目录前言一、准备工作1、添加相应的依赖2、添加相应的命名空间3、创建目标类4、创建切面二、使用AOP1.在切面类中编写增强代码以及切点表达式2、开启aspectj的自动代理3、测试类4、测试结果前言 Spring对AOP的实现包括以下三种方式 1、Spring框架结合AspectJ框架实现的AOP…...
![](https://www.ngui.cc/images/no-images.jpg)
LeetCode LCP 66. 最小展台数量
力扣嘉年华将举办一系列展览活动,后勤部将负责为每场展览提供所需要的展台。 已知后勤部得到了一份需求清单,记录了近期展览所需要的展台类型, demand[i][j] 表示第 i 天展览时第 j 个展台的类型。 在满足每一天展台需求的基础上,…...
![](https://www.ngui.cc/images/no-images.jpg)
设计模式之模板方法模式
什么是模板方法模式 模板方法模式定义了一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构就可以重定义该算法的某些特定步骤。 模板方法模式主要包含几下几个角色: AbstractClass(抽…...
![](https://img-blog.csdnimg.cn/img_convert/5c2ffefc74f593644d8f3cf3bafc085c.png)
Python数据挖掘基础
一、Matplotlib 画二维图表的python库,实现数据可视化 , 帮助理解数据,方便选择更合适的分析方法1、折线图1.1引入matplotlibimport matplotlib.pyplot as plt %matplotlib inlineplt.figure() plt.plot([1, 0, 9], [4, 5, 6]) plt.show()1.2…...
![](https://www.ngui.cc/images/no-images.jpg)
Go基础-函数
文章目录1 定义2 参数的写法3 返回值的写法4 空白符1 定义 函数是将输入数据通过一系列算法运算之后,输出对应的结果。函数一般都是一些特定的功能块,实现某一种功能的封装,降低代码的冗余性 语法 // 关键字 函数名 函数参数 返…...
![](https://img-blog.csdnimg.cn/d45edd4cc6c34bbea12ef9e28f89cc93.png)
AC的改进算法——TRPO、PPO
两类AC的改进算法 整理了动手学强化学习的学习内容 1. TRPO 算法(Trust Region Policy Optimization) 1.1. 前沿 策略梯度算法即沿着梯度方向迭代更新策略参数 。但是这种算法有一个明显的缺点:当策略网络沿着策略梯度更新参数,…...
![](https://img-blog.csdnimg.cn/b4e2975ebbf9416dab0327a04bc3041e.png)
【C++学习】list的使用及模拟实现
🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! list的使用及模拟实现😼构造函数🐵模拟实现😼迭代器🐵…...
![](https://img-blog.csdnimg.cn/80f46a462cd64cc69482c96b5572b61d.png)
动态规划专题精讲1
致前行的人: 要努力,但不要着急,繁花锦簇,硕果累累都需要过程! 前言: 本篇文章为大家带来一种重要的算法题,就是动态规划类型相关的题目,动态规划类的题目在笔试和面试中是考察非常高…...
![](https://img-blog.csdnimg.cn/17f50603f2104e2e9e78b0699ab679a8.png#pic_center)
PPO(proximal policy optimization)算法
博客写到一半发现有篇讲的很清楚,直接化缘了 https://www.jianshu.com/p/9f113adc0c50 Policy gradient 强化学习的目标:学习到一个策略πθ(a∣s)\pi\theta(a|s)πθ(a∣s)来最大化期望回报。 一种直接的方法就是在策略空间中直接搜索来得到最优策略&…...
![](https://www.ngui.cc/images/no-images.jpg)
ElasticSearch基本使用
title: ElasticSearch基本使用 date: 2022-08-29 00:00:00 tags: ElasticSearch基本使用 categories:ElasticSearch 基本概念 随着ES版本的升级,文中有些概念可能已经废弃。 索引词(term) 一个能够被索引的精确值,区分大小写,可以通过term查…...
![](https://img-blog.csdnimg.cn/c6d926c6ed9947c195172569e9b1edf0.png)
windows微软商店下载应用失败/下载故障的解决办法;如何在网页上下载微软商店的应用
一、问题背景 设置惠普打印机时,需要安装hp smart,但是官方只提供微软商店这一下载渠道。 点击安装HP Smart,确定进入微软商店下载。 完全加载不出来,可能是因为开了代理。 把代理关了,就能正常打开了。 但是点击“…...
![](https://img-blog.csdnimg.cn/428bb3f410374b639642c698f42ea867.png#pic_center)
MySQL进阶篇之InnoDB存储引擎
06、InnoDB引擎 6.1、逻辑存储结构 表空间(Tablespace) 表空间在MySQL中最终会生成ibd文件,一个mysql实例可以对应多个表空间,用于存储记录、索引等数据。 段(Segment) 段,分为数据段&#x…...
![](https://img-blog.csdnimg.cn/d49469a8b7a44fd78e401573fdb18ff1.png)
商标侵权行为的种类有哪些
商标侵权行为的种类有哪些 1、商标侵权行为的种类有以下七种: (1)未经商标注册人的许可,在同一种商品上使用与其注册商标相同的商标的; (2)未经商标注册人的许可,在同一种商品上使用与其注册商标近似的商标,或者在类似商品上使…...
![](https://img-blog.csdnimg.cn/img_convert/38bdec3e1d5c64c7d705081dfdda5ffc.png)
Similarity-Preserving KD(ICCV 2019)原理与代码解析
paper:Similarity-Preserving Knowledge Distillationcode:https://github.com/megvii-research/mdistiller/blob/master/mdistiller/distillers/SP.py背景本文的灵感来源于作者观察到在一个训练好的网络中,语义上相似的输入倾向于引起相似的…...
![](https://img-blog.csdnimg.cn/img_convert/8a4b7bb4ba3f0c5b8000ace24e91cfb5.png)
在Linux和Windows上安装seata-1.6.0
记录:381场景:在CentOS 7.9操作系统上,安装seata-1.6.0。在Windows上操作系统上,安装seata-1.6.0。Seata,一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。版本:JDK…...
![](https://img-blog.csdnimg.cn/img_convert/b3bf60e51e99c9772e5b8065181dc363.jpeg)
兼职任务平台收集(二)分享给有需要的朋友们
互联网时代,给人们带来了很大的便利。信息交流、生活缴费、足不出户购物、便捷出行、线上医疗、线上教育等等很多。可以说,网络的时代会一直存在着。很多人也在互联网上赚到了第一桶金,这跟他们的努力和付出是息息相关的。所谓一份耕耘&#…...
![](https://img-blog.csdnimg.cn/a822ed4da8864c01baa5809e97cda394.png)
目标检测三大数据格式VOC,YOLO,COCO的详细介绍
注:本文仅供学习,未经同意请勿转载 说明:该博客来源于xiaobai_Ry:2020年3月笔记 对应的PDF下载链接在:待上传 目录 目标检测常见数据集总结 V0C数据集(Annotation的格式是xmI) A. 数据集包含种类: B. V0C2007和V0C2012的区别…...
![](https://img-blog.csdnimg.cn/ffde03220a884be5ad765210536b916f.png)
SpringBoot实现统一返回接口(除AOP)
起因 关于使用AOP去实现统一返回接口在之前的博客中我们已经实现了,但我突然突发奇想,SpringBoot中异常类的统一返回好像是通过RestControllerAdvice 这个注解去完成的,那我是否也可以通过这个注解去实现统一返回接口。 正文 这个方法主要…...
![](https://www.ngui.cc/images/no-images.jpg)
ChatGpt - 基于人工智能检索进行论文写作
摘要 ChatGPT 是一款由 OpenAI 训练的大型语言模型,可用于各种自然语言处理任务,包括论文写作。使用 ChatGPT 可以帮助作者提高论文的语言流畅度、增强表达能力和提高文章质量。在写作过程中,作者可以使用 ChatGPT 生成自然语言的段落、句子、单词或者短语,作为启发式的写…...
![](https://img-blog.csdnimg.cn/img_convert/1b3ea23a7bf105ebaa0cc48157b6117d.png)
实例三:MATLAB APP design-多项式函数拟合
一、APP 界面设计展示 注:在左侧点击数据导入,选择自己的数据表,如果数据导入成功,在右侧的空白框就会显示数据导入成功。在多项式项数右侧框中输入项数,例如2、3、4等,点击计算按钮,右侧坐标框就会显示函数图像,在平均相对误差下面的空白框显示平均相对误差。...
![](https://www.ngui.cc/images/no-images.jpg)
springboot多种方式注入bean获取Bean
springboot动态注入bean1、创建Bean(demo)2、动态注入Bean3、通过注解注入Bean4、通过config配置注入Bean5、通过Import注解导入6、使用FactoryBean接口7、实现BeanDefinitionRegistryPostProcessor接口1、创建Bean(demo) Data public class Demo(){private String name;publi…...
![](https://img-blog.csdnimg.cn/img_convert/03c34b0ef08fcf773f62436d4527073b.png)
Markdown及其语法详细介绍(全面)
文章目录一、基本语法1.标题2.段落和换行3.强调4.列表5.链接6.图片7.引用8.代码9.分割线10表格二、扩展语法1.标题锚点标题 {#anchor}2.脚注3.自动链接4.任务列表5.删除线6.表情符号7.数学公式三、Markdown 应用1.文档编辑2.博客写作3.代码笔记四、常见的工具和平台支持 Markdo…...
![](https://img-blog.csdnimg.cn/img_convert/f1ac9f49e401671fe687b5f8b351e47e.png)
在Linux和Windows上安装sentinel-1.8.5
记录:380场景:在CentOS 7.9操作系统上,安装sentinel-1.8.5。在Windows上操作系统上,安装sentinel-1.8.5。Sentinel是面向分布式、多语言异构化服务架构的流量治理组件。版本:JDK 1.8 sentinel-1.8.5 CentOS 7.9官网地址…...
![](https://www.ngui.cc/images/no-images.jpg)
面试攻略,Java 基础面试 100 问(十)
StringBuffer、StringBuilder、String区别 线程安全 StringBuffer:线程安全,StringBuilder:线程不安全。 因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 synchronized 修饰。 StringBuf…...
![](https://img-blog.csdnimg.cn/4faeb281d50d49878b3ceccc8fbad66c.png)
Zero-shot(零次学习)简介
zero-shot基本概念 首先通过一个例子来引入zero-shot的概念。假设我们已知驴子和马的形态特征,又已知老虎和鬣狗都是又相间条纹的动物,熊猫和企鹅是黑白相间的动物,再次的基础上,我们定义斑马是黑白条纹相间的马科动物。不看任何斑…...
![](https://img-blog.csdnimg.cn/20201011215347650.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1Jlc3VtZVByb2plY3Q=,size_16,color_FFFFFF,t_70#pic_center)
哈尔滨网站建设哪家好/广州优化网站排名
xy,x-y是xxy,xx-y的简写 x(a>b)?a:b 三目运算符,若a大于b为真,则把a赋值给x,若a小于b 则把b赋值给x #include <stdio.h>int main () {int a3333;int b345;int x(a>b)?a:b;;printf("%d\n",x);return 0; }...
![](/images/no-images.jpg)
做ppt模板网站/百度百科入口
http://rcv.kaist.ac.kr/~ail/...
![](/images/no-images.jpg)
东台专业做网站/株洲网站设计外包首选
5.1 Laravel中的文件上传 文件系统 Laravel 的文件系统是基于 Frank de Jonge 的 Flysystem 扩展包 提供了简单的接口,可以操作本地端空间、Amazong S3、Rackspace Clound Storage 可以非常简单的切换不同的保存方式,但仍使用相同的api操作 配置文件…...
![](/images/no-images.jpg)
网站空间登陆/网站建设的公司
首先是实例化的时候的参数的解释 //Initialize SmartThreadPool & Make logs //SmartThreadPool m_hThreadPool; //m_hThreadPool new SmartThreadPool();//声明一个线程池 STPStartInfo stp new STPStartInfo();//线程详细配置参数 //m_hThreadPool.STPStartInfo这个属性…...
![](/images/no-images.jpg)
做网站的公司哪家强/关键词优化搜索排名
Topic modelling for humans 看着gensim这个标题都觉得霸气,从文本预处理,特征提出到主题聚类等,基本上包含了文本处理的所有功能。Corpora and Vector Spaces 语料与向量空间,这一节主要讲如何把文本从词变为bag-of-word。中文的…...
网站代码 输入文字 跳出内容/平面设计培训
前段时间在网上看到了一篇滴答词典的项目文章,实现简单的单词查找、整句翻译和生词本功能,但是该项目年代久远,所用的API已不再提供数据,我决定利用它的已有框架实现其功能,主要用到的技术有GSON和Volley以及SQLite相关…...