君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 107 下一页

2013年6月6日 #

摘要: Java的HashMap非常的常用,本篇研究它的实现算法,最后希望计算出内存占用,性能的量化数据,然后得出什么时候使用HashMap,什么时候不能滥用的结论。HashMap实际上是一个数组,数组里面的每个元素都是一个链表。每个元素在通过put方法放入HashMap中的时候,要按照如下步骤进行:1.根据该元素自身提供的hashcode计算出散列值,该散列值就是数组的下标2.将新元素放入该数组位置的链表中先来看一下数组的定义:[java]view plaincopyprint?/***Thetable,resizedasnecessary.LengthMUSTAlwaysbeapoweroftwo 阅读全文
posted @ 2013-06-06 05:30 刺猬的温驯 阅读(246) 评论(0) 推荐(0)

摘要: Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构。Java集合框架的基本接口/类层次结构:java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedList [C] +--java.util.Vector [C] +--java.util.Stack [C]+--java.util.Set [I] +--java.util.HashSet [C] +--java.util.SortedSet [ 阅读全文
posted @ 2013-06-06 05:10 刺猬的温驯 阅读(339) 评论(0) 推荐(0)

摘要: Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。 所有实现Collection.. 阅读全文
posted @ 2013-06-06 04:56 刺猬的温驯 阅读(1190) 评论(0) 推荐(0)

摘要: 集合交集在数学上面的定义是:A和B的交集写作 "A∩B"。 形式上:x属于A∩B当且仅当x属于A,且x属于B。在Java集合类List里面也提供了一个内置的方法,求两个List集合的交集。方法如下:public boolean retainAll(Collection<?> c)子类必须实现该方法。下面是以子类ArrayList为例的一段代码:view sourceprint?01publicclassListDemo {0203/**04* @param args05*/06publicstaticvoidmain(String[] args) {07List 阅读全文
posted @ 2013-06-06 04:52 刺猬的温驯 阅读(7709) 评论(0) 推荐(0)

摘要: List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。1、List接口和ListIterator接口 List作为Collection接口的子接口,可以使用Collection接口里的全部方法。List是有序集合,所以List集合里增加了一些根据索引来操作集合元素的方法:void add(int index, Object element):将元素element插入在List集合的index处。boolean addAll(int index, Collection c):将集合c所包含的所有元素都插入在List集 阅读全文
posted @ 2013-06-06 04:49 刺猬的温驯 阅读(236) 评论(0) 推荐(0)

摘要: TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。1、自然排序TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。(比较的前提:两个对象的类型相同)。 java提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行比较,例如obj1.comparTo(obj2),如果该方法返回0,则表明这两个对 阅读全文
posted @ 2013-06-06 04:41 刺猬的温驯 阅读(369) 评论(0) 推荐(0)

摘要: 1、Set接口的使用Set集合里多个对象之间没有明显的顺序。具体详细方法请参考API文档(可见身边随时带上API文档有多重要),基本与Collection方法相同。只是行为不同(Set不允许包含重复元素)。 Set集合不允许重复元素,是因为Set判断两个对象相同不是使用==运算符,而是根据equals方法。即两个对象用equals方法比较返回true,Set就不能接受两个对象。01publicclassTestSet02{03publicstaticvoidmain(String[] args)04{05Set<String> books =newHashSet<String 阅读全文
posted @ 2013-06-06 04:14 刺猬的温驯 阅读(242) 评论(0) 推荐(0)

摘要: 说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。1、综述所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。(数组既可以保存基本类型的数据也可以保存对象)。当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理。从JDK1.5以后,这种状态得到了改进:可以使用泛型来限制集合里元素的类型,并让集合记住所有集合元素的类型(参见具体泛型的内容)。 Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口 阅读全文
posted @ 2013-06-06 04:09 刺猬的温驯 阅读(251) 评论(0) 推荐(0)

摘要: 翻译自:The Collection Interface一个集合表示一组对象。Collection接口被用来传递对象的集合,具有最强的通用性。例如,默认所有的集合实现都有一个构造器带有一个Collection类型参数。这个构造器被称作转换构造器,用指定集合的元素来初始化新集合,而不管指定集合实现的是哪个集合接口和实现类型。换句话说,这个构造器使得我们可以转化集合的类型(比如List到Set,Set到List)。设想一下,假如你有一个Collection<String> c,它可能是一个List,也可能是一个Set,或者其他类型的Collection。按照上面的方法可以这样初始化一个 阅读全文
posted @ 2013-06-06 03:33 刺猬的温驯 阅读(226) 评论(0) 推荐(0)

摘要: 翻译自:The Set Interface一个Set是一个不能包含重复元素的集合。它映射了数学意义上的集合抽象。Set接口只是在继承自Collecton接口的方法基础之上加上不允许元素重复的限制。Set也对equals和hashCode的行为规约施加了更强的限制,使得Set实例允许进行有意义的比较,即使他们的具体实现不同。两个集合实例相等(equal)如果它们包含相同的元素。一个Set是一个不能包含重复元素的集合。它映射了数学意义上的集合抽象。Set接口只是在继承自Collecton接口的方法基础之上加上不允许元素重复的限制。Set也对equals和hashCode的行为规约施加了更强的限制, 阅读全文
posted @ 2013-06-06 03:33 刺猬的温驯 阅读(242) 评论(0) 推荐(0)

上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 107 下一页