E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
集合源码
详细分析ArrayList
集合源码
分析以及纯手写ArrayList集合
首先在分析源码前,先了解下几点1.jdk1.7之后数组默认数据大小代码存放在add方法中(jdk1.6默认构造函数初始化elementData大小)2.arrayList底层采用数组实现的数组名称为elementData-----ArrayList分析源码开始---首先先定义一个ArrayList集合,并添加一个元素方便进行调试,如下图通过DEBUG调试进入到ADD方法中这里的ensureCapa
黎明黎明呀
·
2020-08-03 11:20
20道java
集合源码
面试题,请笑纳
问题一:看到这个图,你会想到什么?答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Collection。但是我个人认为Map并不能说是一个集合,称之为映射或许更为合适,因为它的KeySet视图是一个Set类型
程序员麦冬
·
2020-08-03 01:06
面试文
python
java
编程语言
数据结构
hashmap
java
集合源码
解读---Queu和Stack的数组和链式实现
栈和队列所谓的栈,是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最近时间插入的元素。遵循FILO(Firstin,lastout,先进后出)的原则。所谓的队列,也是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最久时间插入的元素。遵循FIFO(Firstin,firstout,先进先出)的原则。关于栈和队列的具体实现,我们即可以借助于数组,也可以采用链表来实现。1)栈的数
hungry_bug
·
2020-08-03 00:10
数据结构
带你走进Java
集合源码
深入分析目录
一、ArrayList1.带你走进Java集合_ArrayList源码深入分析_重要属性、构造函数、方法源码解析2.带你走进Java集合_ArrayList源码深入分析_removeAll、retainAll两个方法源码解析3.带你走进Java集合_ArrayList源码深入分析_迭代器源码解析4.带你走进Java集合_ArrayList源码深入分析_subList源码解析二、LinkedList
邵天强架构师之路
·
2020-08-02 18:06
java_集合源码分析
java
集合源码
分析(一)---整体
吐槽这个月要把java的集合好好重新看下了,把上个月没看的补上,突然发现自己写了这么久的安卓,集合那块都忘的差不多了,自己看了下自己当时写的集合的博客,写的真心烂唉。自己当时学的时候的博客主要的目的是搞清楚集合底部的实现原理,和几个的具体的区别学习的方式:看大佬的博客+自己看源码代码+画流程图大佬博客链接:大佬博客专栏集合的整体框架结构在这张图里面,我们发现里面就三大类东西集合接口:6个接口(短虚
sakurakider
·
2020-08-02 18:31
java
Java源码分析
Java
集合源码
分析ArrayListhttps://www.cnblogs.com/zhangyinhua/p/7687377.htmlLinkedlisthttps://www.cnblogs.com
蝎子睿
·
2020-08-02 18:54
java
Java
集合源码
分析及总结
Java的集合容器这块是平时开发中使用到最多的Java类库了,什么情况下应该使用那些容器,这些容器的实现机制又都是怎样的?最近重新仔细地研究了Java的集合这块知识以及JDK的源码,总结一下自己的心得。下图中对于Java的集合api,有一个比较全面的展示。Java容器库中分为两类(基本接口)1、集合(Collection):通过一个或多个规则存储的一序列的元素。必须知道它是线性结构存储的。2、图(
janekeyzheng
·
2020-08-02 18:22
Java
Java
集合源码
剖析(三)【TreeMap、LinkedHashmap】
TreeMap源码剖析前言本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。红黑树简介TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于
gao_chun
·
2020-07-31 17:11
java技术笔记
20道java
集合源码
面试题,请笑纳
问题一:看到这个图,你会想到什么?答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Collection。但是我个人认为Map并不能说是一个集合,称之为映射或许更为合适,因为它的KeySet视图是一个Set类型
程序员麦冬
·
2020-07-30 21:15
java
程序员
集合
源码阅读系列——基础篇(ConcurrentHashMap
集合源码
分析)
上篇我们讲到HashMap,从整个代码的实现上,我们看到没有任何一个关于synchronized或者Lock的字眼,所以HashMap是线程不安全的,Java提供了一个线程安全的HashMap,当然也可以通过Collections.synchronizedMap来实现Map线程安全,与List里面提到的方式一样,也是很暴力的直接给每个读取方法加一个synchronized字段,这里不再赘述。我们讲
luoluofeixia
·
2020-07-30 12:20
android
java
【Java
集合源码
剖析】Hashtable源码剖析
Hashtable简介Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。HashTable源码剖析Ha
zwt7790195
·
2020-07-29 03:24
Java集合
java中的ArrayList
集合源码
分析(jdk1.8版本)。
一.ArrayList概述。在Java中,数组和集合是非常重要的两个数据结构。数组是具有相同的数据类型且按一定次序排列的一组变量的集合体,构成一个数组的这些变量称为数组元素数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的学生,由于不停有新生来报道,同时也有学生毕业离开学校,这时学生的数目很难确定。为了保存这些数目不确
颺灏
·
2020-07-15 08:09
java编程语言
【感想】百度 阿里 今日头条 面试感想
mysql实现原理java并发编程java
集合源码
javaweb源码java虚拟机大型网站构架spring源码算法基础还是不行,准备狂啃这些书了,3-4个月的时间。
绝世好阿狸
·
2020-07-15 00:01
感想
java技术工程师必会丨List
集合源码
分析
ArrayList集合1.数据结构特点ArrayList底层数据结构是一个数组,查询元素速度快,增删速度稍慢2.几个概念:(1)DEFAULT_CAPACITY:表示数组的初始大小,默认10(2)size:表示当前数组的大小(3)modCount:统计当前数组元素被修改的次数,只要修改,就+13.空参构造方法初始化publicArrayList(){//实际大小为{},长度为0的数组this.el
秃然,无发可说
·
2020-07-14 05:25
java基础教程
java技术合集
List集合源码分析
JDK 1.8 java
集合源码
分析一(ArrayList)
工作有几年了,说来惭愧,从来没认真仔细的分析过JDK里面的源码,从今天开始分析下JDK中集合部分源码,学习下大神的思路,如有错误,大家尽管指出。JDK版本JDK_1.8.0_201编辑器:idea2019.3首先我们看一下Collection接口看一下Collection接口的各种关系,idea中ctrl+h我们只看其中的Set与List用一个UML图画一下这里面有我们最常用到的ArrayList
攻城小狮
·
2020-07-14 03:51
java
java
Java
集合源码
剖析-HashSet源码剖析
一.概述对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。特点:(1)非线程安全(2)允许null值(3)添加值得时候会先获取对象的hashCode方法,如果hashCode方法返回的值一致,则再调用equals方法判断是否一致,
AHU_
·
2020-07-13 23:54
Java
集合类
java1.7
集合源码
赏析系列:线程池原理
Executors支持以下各种方法:创建并返回设置有常用配置字符串的ExecutorService的方法。创建并返回设置有常用配置字符串的ScheduledExecutorService的方法。创建并返回“包装的”ExecutorService方法,它通过使特定于实现的方法不可访问来禁用重新配置。创建并返回ThreadFactory的方法,它可将新创建的线程设置为已知的状态。创建并返回非闭包形式的
wildpal
·
2020-07-13 21:51
java基础
java
线程池
源码
线程
java-Set
集合源码
学习
Set集合Set注重独一无二的性质,该体系集合用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。对象的相等性本质是对象hashCode值(java是依据对象的内存地址计算出的此序号)判断的(去重),如果想要让两个不同的对象视为相等的,就必须覆盖Object的hashCode方法和equals方法。实现类有:HashSet,(一张hash表)哈希表边存放的是哈希值。HashSet存储元素的
缘之妙不可言
·
2020-07-13 14:53
技术性
java
java-jdk源码学习
JAVA
集合源码
解析 HashSet 探索(基于JDK1.8)
JDK1.8HashSet探索本文所讨论的源码是基于JDK1.8展开的,由于篇幅有限,只讨论主要部分JDK1.8HashSet探索1.简介2.探索2.1类关系2.2属性2.3构造方法2.4核心方法3.总结1.简介HashSet是不同步的,继承的set接口,所以里面的元素是不能重复的,无序的,允许包含值为null的元素,但最多只能有一个null元素。很多内部实现是基于HashMap的,可以看成是一个
Chandler丶
·
2020-07-13 08:15
JAVA集合解析
Java
集合源码
分析11----HashSet源码分析
目录简介介绍方法源码迭代方式-----------源码分析基于jdk1.8.简介HashSet自jdk1.2引入,继承了抽象方法AbstractSet,实现了Set接口,Cloneable接口,以及java.io.Serializable接口,所以能被克隆和序列化。HashSet底层是使用HashMap实现的,其中HashMap的键就是HashSet集合的元素,所以HashSet集合是一个元素不重
DreamTech1113
·
2020-07-13 07:56
Java集合学习
JAVA
集合源码
攻坚战(16)—— NavigableSet
JAVA
集合源码
攻坚战(16)——NavigableSet前言正文源码分析查找操作查找并移除操作迭代器获得子集操作前言NavigableSet是对SortedSet的一个增强实现,能够进行数据的匹配。
噬月幽狼
·
2020-07-12 01:59
java
jdk源码
java集合框架
JAVA集合攻坚战
WPF 自定义控件之Icon 图标
例如:图标
集合源码
地址:https://github.com/Super0Lan/ControlDesign
欧皇神降术
·
2020-07-11 16:25
WPF
Java
集合源码
分析之Set概述
这篇文章是本系列的完结了,也会是读起来最轻松的文章了。因为这里只有一个概念,那就是Set是什么,其余的则是一些感触与总结。Set概述因为Set的结构及实现都和Map保持高度一致,这里将不再对其进行分析了,感兴趣的朋友可以自行查看源码。但我们还是需要知道什么是Set,Set是一个包含不可重元素的集合,也就是所有的元素都是唯一的。还是看下文档说明吧:Acollectionthatcontainsnod
码到成功-
·
2020-07-11 13:23
JAVA
集合
JAVA
集合源码
分析系列:TreeSet源码分析
TreeSetTreeSet的父类和实现的接口TreeSet是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet,Cloneable,java.io.Serializable接口。TreeSet继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法。TreeSet实现了NavigableSet接口,意味着它支持
红涛在反思
·
2020-07-11 01:25
java提高
java1.7
集合源码
赏析系列:HashTable、ConcurrentHashMap、HashMap差异分析
HashTable与ConcurrentHashMap均可实现HashMap的功能,对外提供了键值对存储的数据结构。但是在内部结构及实现上有何区别,性能上的差异到底在哪里又是如何导致的,让我们从源码的角度上来进行分析。1.声明的区别//hashtable的声明publicclassHashtableextendsDictionaryimplementsMap,Cloneable,java.io.S
wildpal
·
2020-07-10 11:26
java基础
Java
集合源码
分析之Queue(一):超级接口Queue
在日常生活中,排队几乎随处可见,上地铁要排队,买火车票要排队,就连出门吃个大餐,也要排队。。。之前研究的ArrayList就像是一个缺乏管理的排队系统。大家虽然会排队,但一会走个人,大家向前挪一挪,一会插个人,大家向后挪一挪,碰到这样的队伍,一定让人痛苦万分吧?今天要介绍的Queue就不同了,它是一个严格的排队系统。就像许多火车站排队窗口在两侧加了护栏一样,大家只能从队尾进来,从队首离开,我们称之
码到成功-
·
2020-07-09 20:41
JAVA
集合
JAVA
集合
failed to lazily initialize a collection of role
按照规划,从本篇开始我们开启『并发』系列内容的总结,从本篇的线程开始,到线程池,到几种并发
集合源码
的分析,我们一点点来,希望你也有耐心,因为并发这块知识是你职业生涯始终绕不过的坎,任何一个项目都或多或少的要涉及一些并发的处理
zhuifenging
·
2020-07-09 06:04
Hibernate学习
Java
集合源码
分析之Map(三):接口NavigableMap
SortedMap提供了获取最大值与最小值的方法,但对于一个已经排序的数据集,除了最大值与最小值之外,我们可以对任何一个元素,找到比它小的值和比它大的值,还可以按照按照原有的顺序倒序排序等。NavigableMap就为我们提供了这些功能。NavigableMap主要有以下方法://找到第一个比指定的key小的值Map.EntrylowerEntry(Kkey);//找到第一个比指定的key小的ke
大大纸飞机
·
2020-07-08 20:35
个人学习笔记之Java
集合源码
解析(List)
目录引言ListList常用方法介绍booleanadd(Ee)结果分析错误分析voidadd(intindex,Eelement)结果分析voidclear()booleancontains(Objecto)booleanequals(Objecto)booleanisEmpty()booleanremove(Objecto)Eset(intindex,Eelement)intsize()Obj
做一个没有感情的内存条
·
2020-07-08 00:12
Java集合
List
学习笔记
集合源码
List集合
2019年总览,争取年底补充完成
而JDK源码又可以分为下面4大块:
集合源码
并发
集合源码
并发包源码阻塞队列源码线程池源码
集合源码
说到集合,我们大家都非常熟悉,这可是我们工作中用得非常多的一类API。
dabing2032
·
2020-07-07 18:19
java
集合源码
分析(一)ArrayList
前言我们想要更深入的去了解集合那就要通过我们去分析它的源码来了解它。希望对集合有一个更进一步的理解!既然是看源码那我们要怎么看一个类的源码呢?这里我推荐的方法是:1)看继承结构看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。2)看构造方法在构造方法中,看做了哪些事情,跟踪方法中里面的方法。3)看常用的方法跟构造方法一样,这个方法实现功能是如何实现的注:既然是源码,为什么要这样设
爱情小傻蛋
·
2020-07-07 14:32
(周期计划-7)常用集合的源码分析:ArrayList
因为在集合的源码分析上,出了些问题,所以这段时间,好好重新理一理常用的
集合源码
。
咸鱼正翻身
·
2020-07-07 05:21
JDK
集合源码
分析系列(三)——HashMap
一、概述HashMap主要是用来存储key-value对的,HashMap中的key必须是唯一的。那么HashMap底层是怎么实现的呢?二、源码分析这里说明下,以下源码分析都是基于jdk1.8的。jdk1.8以前,HashMap的实现跟Jdk1.8有所不同,1.8以前底层使用的是数组+链表的形式,1.8做了改进,如果链表比较长(链表长度大于8),就会把链表转换为红黑树,来增加查找的性能。stati
aronykl
·
2020-07-06 14:24
Java
SE
HashMap
JDK
集合源码
分析系列(四)——LinkedHashMap
一、概述LinkedHashMap其实是HashMap的一个子类,实现原理其实跟HashMap类似。只不过LinkedHashMap会记录插入key-value的顺序,并且在遍历的时候,会按照插入key-value对的顺序遍历出来。LinkedHashMap底层是基于双向链表来实现的,底层就是双向链表来记录元素添加的顺序的。二、源码分析先看下LinkedHashMap类有哪些属性:staticcl
aronykl
·
2020-07-06 14:24
Java
SE
LinkedHashMap
JDK
集合源码
分析系列(二)——LinkedList
一、概述LinkedList底层是基于链表来实现的一种集合。优点在于基于链表实现,插入和删除性能很高,不会像ArrayList那样会产生大量的元素移动。缺点是随机取一个元素时,需要进行链表遍历,性能相对较差些。二、源码分析1.属性值介绍transientintsize=0;/***Pointertofirstnode.*Invariant:(first==null&&last==null)||*(
aronykl
·
2020-07-06 14:24
Java
SE
LinkedList
JDK
集合源码
分析系列(一)——ArrayList
一、概述ArrayList是我们日常开发中最常用的一种集合,原理就是底层是基于数组来实现了。优点:因为是基于数组来实现,所以随机读会很快,list.get(2),list.get(20)这种的会很快,直接可以通过内存地址定位某个元素。缺点:因为Java里的数组是定长的,因此不断的往list里面添加数据的时候,最后就会导致原来的数据容纳不下了,需要一个更大的数据来容纳元素。扩容时需要进行数组的拷贝,
aronykl
·
2020-07-06 14:24
Java
SE
Java
集合源码
分析(三)Vector和Stack
前言前面写了一篇关于的是LinkedList的除了它的数据结构稍微有一点复杂之外,其他的都很好理解的。这一篇讲的可能大家在开发中很少去用到。但是有的时候也可能是会用到的!注意在学习这一篇之前,需要有多线程的知识:1)锁机制:对象锁、方法锁、类锁对象锁就是方法锁:就是在一个类中的方法上加上synchronized关键字,这就是给这个方法加锁了。类锁:锁的是整个类,当有多个线程来声明这个类的对象的时候
爱情小傻蛋
·
2020-07-05 10:02
阿里P8大牛手撸一份Java
集合源码
学习笔记,太厉害了!
Java集合是面试的重点,我在面试的时候几乎每家公司都会问集合的问题,从基础到源码,一步一步深入。Java集合面试的知识点就不限于基本的用法了,可能面试官会问你:HashMap的数据结构是什么?他是怎么扩容的?底层有没有红黑树?去KeyHash值是JDK源码是怎么实现的?为什么要这样做?HashMap是线程安全的吗?什么是线程安全?有什么更好的解决方案?那线程安全的HashMap是怎么实现的?Ha
java学习园
·
2020-07-05 02:06
java
面试
集合
源码
javascript
Java
集合源码
浅析(一) : ArrayList
重复造轮子的意义就在于,笔者可以亲自去阅读与欣赏JDK
集合源码
,学习JDK设计者们那优雅的code风格。那么,就让我们从
温柔狠角色
·
2020-07-02 17:50
Java集合源码浅析
Java
集合源码
实现三:HashMap(jdk1.8)
Java
集合源码
实现三:HashMap(jdk1.8)文章目录Java
集合源码
实现三:HashMap(jdk1.8)类继承关系:什么是HashMapHashMap数据结构源码分析:1.类继承实现2.成员变量
零2一
·
2020-07-02 16:53
Java集合源码实现原理
Java
集合源码
实现一:ArrayList(jdk1.8)
Java
集合源码
实现一:ArrayList(jdk1.8)Java
集合源码
实现一ArrayListjdk18类继承关系什么是ArrayList源码分析类继承实现成员变量主要方法构造方法获取元素添加元素移除元素
零2一
·
2020-07-02 16:21
Java集合源码实现原理
【Java
集合源码
剖析】Java集合框架
转载轻注明出处:http://blog.csdn.net/ns_code/article/details/35564663Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Col
兰亭风雨
·
2020-07-02 12:13
Java集合源码剖析
Java集合源码剖析
Java
集合源码
分析之Iterable概述
Iterable是迭代器的意思,作用是为集合类提供for-each循环的支持。由于使用for循环需要通过位置获取元素,而这种获取方式仅有数组支持,其他许多数据结构,比如链表,只能通过查询获取数据,这会大大的降低效率。Iterable就可以让不同的集合类自己提供遍历的最佳方式。Iterable的文档声明仅有一句:Implementingthisinterfaceallowsanobjecttobet
码到成功-
·
2020-07-02 11:42
JAVA
集合
【两万字】面试官:听说你很懂
集合源码
,接我二十道问题!
【高能预警】:两万字长文,建议先收藏再看,深度源码分析,二十个问题带你一网打尽集合面试。问题一:看到这个图,你会想到什么?(PS:截图自《编程思想》)答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Colle
Bolon0708
·
2020-07-02 07:22
Java
集合
数据结构及排序算法
【两万字】面试官:听说你很懂
集合源码
,接我二十道问题!
问题一:看到这个图,你会想到什么?(PS:截图自《编程思想》)答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Collection。但是我个人认为Map并不能说是一个集合,称之为映射或许更为合适,因为它的Ke
山禾说
·
2020-07-01 19:45
java
集合
面试
数据结构
Java基础面试题(18)----ArrayList
集合源码
解析
我们对ArrayList集合的源码进行解析,他是属于线性数据结构中的顺序存储结构,这里我们只是写出了增删改查的方法。首先我们来看一下ArrayList的数据结构底层实际上是一个数组,在增加元素的时候,对数组进行扩容,添加一个元素,容量增加1。实际线性存储结构中的顺序存储的结构,每个位置的元素都有执行的索引,所以可以实现快速的查找元素。用简单的图片展示,如下:但是当在指定位置添加元素的时候,后面位置
xipenfei
·
2020-07-01 06:02
集合
数据结构
面试题
【两万字】面试官:听说你很懂
集合源码
,接我二十道问题!
问题一:看到这个图,你会想到什么?(PS:截图自《编程思想》)答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Collection。但是我个人认为Map并不能说是一个集合,称之为映射或许更为合适,因为它的Ke
山禾说
·
2020-07-01 00:07
Java面试
java
面试
集合论
数据结构
hashmap
【源码探索系列】 modCount知多少?
2.modCount的作用通常地,在
集合源码
中存在这个modCount变量时,基本上可以说明这个类是线程不安全的。这个变量在集合初始化的时候,就将modCount赋
老张家的独苗
·
2020-06-30 14:09
面试题集
hashmap
Java
集合源码
剖析-Java集合框架
Hi大家好,我是清和二七,今天我们来聊聊《Java
集合源码
剖析-Java集合框架》一.层次关系Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等
AHU_
·
2020-06-30 13:51
Java
集合类
2019后端java相关学习计划
以下大致为个人技术栈以及对应的学习计划java基础JDK源码常用
集合源码
Anguser
·
2020-06-30 12:53
学习计划
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他