数组的特点:长度固定
对象数组的缺点是不能适应我们变化的需求
Java提供一个类似于数组的东西--集合
为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。
数组和集合类同是容器,有何不同?
数组虽然也可以存..
分类:
编程语言 时间:
2016-04-27 22:52:28
阅读次数:
246
先介绍集合框架:
Java,是由Sun公司于1995年推出的编程语言。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的...
分类:
编程语言 时间:
2016-04-26 21:29:13
阅读次数:
152
TreeSet:可以对Set集合中的元素进行排序。
例:存放自定义对象
import java.util.*;
/*
需求:往TreeSet集合中存储自定义对象--学生
想按照学生的年龄进行排序
*/
class Student{
private String name;
private int age;
Student(String name,int age){
th...
分类:
编程语言 时间:
2016-04-26 21:13:15
阅读次数:
212
前面已经学习了Map的部分内容,主要是HashMap和HashTable,这一节我们来看看它们两有啥异同点。
1. HashMap和HashTable的相同点
HashMap和HashTable都是存储“键值对”的散列表,而且都是采用拉链法来实现的。存储的思想都是:通过table数组存储,数组的每个元素都是一个Entry,而一个Entry就是一个单项链表,Entry链表中的每个...
分类:
编程语言 时间:
2016-04-26 19:33:23
阅读次数:
192
一、前言 完成了JUC的锁框架的分析后,现在分析JUC集合框架,之前分析过的集合框架,很大程度上都不是线程安全的,其在多线程环境下会出现很多问题,为了保证在多线程环境下仍然能够正确安全的访问集合,出现了JUC下的集合框架,下面逐一进行介绍分析。 二、JUC集合框架图 下面给出JUC中的集合框架,之后 ...
分类:
其他好文 时间:
2016-04-26 18:56:39
阅读次数:
100
boolean add(E e) 将指定的元素添加到此列表的尾部。 void add(int index, E element) 将指定的元素插入此列表中的指定位置。 boolean addAll(Collection<? extends E> c) 按照指定 collection 的迭代器所返回的 ...
分类:
编程语言 时间:
2016-04-26 00:23:53
阅读次数:
187
我们继续分析TreeMap的源码
1.TreeMap源码分析(续)
1. 存取方法
TreeMap中的存取方法本质上就是对红黑树的插入和删除操作,从源码里体现的更为明显,其实就是对红黑树的插入和删除(可以参考:红黑树),下面简单看下源码:
/*************************** put和remove ****************************...
分类:
编程语言 时间:
2016-04-25 21:12:23
阅读次数:
301
01.为什么要使用集合框架? 解析:如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,那么可以使用Java集合框架。 如果启用集合的删除方法,那么集合中所有元素的索引会自动维护。 集合完全弥补了数组的缺陷。 02.集合框架的内容 集合框架都包含三大块内容:对外的接口,接口的实现和对集 ...
分类:
编程语言 时间:
2016-04-25 13:04:04
阅读次数:
332
MapMap是一种把键对象和值对象进行关联的容器一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所...
分类:
编程语言 时间:
2016-04-25 11:50:27
阅读次数:
225