java集合框架详解
) 首先查看jdk中Collection类的源码后会发现如下内容:
。。. * @see AbstractCollection * @since 1.2*/ publicinterfaceCollection《E》extendsIterable《E》 {// Query Operations
通过查看可以发现Collection是一个接口类,其继承了java迭代接口Iterable。
众所周知在我们使用Java中的类的存储的时候经常会使用一些容器,链表的概念,本文将彻底帮您弄清链表的各种概念和模型!!!!
注意理解哦~~~ 大致框架如下:
Collection接口有两个主要的子接口List和Set,注意Map不是Collection的子接口哦这个要牢记。
Collection中可以存储的元素间无序,可以重复组各 自独立的元素, 即其内的每个位置仅持有一个元素,同时允许有多个null元素对象。
Collection接口中的方法如下:
1)List接口
List接口对Collection进行了简单的扩充
查看List接口的源码会发现:
。。.《br》 * @see AbstractList * @see AbstractSequentialList * @since 1.2*/ public interface List《E》 extends Collection《E》 { // Query Operations /** * Returns the number of elementsinthis list. If this list contains * more than 《tt》Integer.MAX_VALUE《/tt》 elements, returns * 《tt》Integer.MAX_VALUE《/tt》。 《br》 。。.
这里也就知道为什么Collection接口时List接口的父接口了吧。
List接口中的元素的特点为:
List中存储的元素实现类排序,而且可以重复的存储相关元素。
同时List接口又有两个常用的实现类ArrayList和LinkedList
1)ArrayList:
ArrayList数组线性表的特点为:类似数组的形式进行存储,因此它的随机访问速度极快。
ArrayList数组线性表的缺点为:不适合于在线性表中间需要频繁进行插入和删除操作。因为每次插入和删除都需要移动数组中的元素。
可以这样理解ArrayList就是基于数组的一个线性表,只不过数组的长度可以动态改变而已。
对于ArrayList的详细使用信息以及创建的过程可以查看jdk中ArrayList的源码,这里不做过多的讲解。
对于使用ArrayList的开发者而言,下面几点内容一定要注意啦,尤其找工作面试的时候经常会被问到。
注意啦!!!!!!!!
a.如果在初始化ArrayList的时候没有指定初始化长度的话,默认的长度为10.
packagecom.yonyou.test; importjava.util.ArrayList; importjava.util.Iterator;importjava.util.List; /** * 测试类 *@author小浩 * @创建日期 2015-3-2 */publicclassTest{publicstaticvoidmain(String[] args) { List《String》 list=newArrayList《String》(); list.add( “Hello”); list.add( “World”); list.add( “HAHAHAHA”); //第一种遍历方法使用foreach遍历Listfor(String str : list) { //也可以改写for(int i=0;i《list.size();i++)这种形式System.out.println(str); } //第二种遍历,把链表变为数组相关的内容进行遍历String[] strArray= newString[list.size()]; list.toArray(strArray); for( inti=0;i《strArray.length;i++) //这里也可以改写为foreach(String str:strArray)这种形式{ System.out.println(strArray[i]); } //第三种遍历 使用迭代器进行相关遍历Iterator《String》 ite=list.iterator(); while(ite.hasNext()) { System.out.println(ite.next()); } } }
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%