文章分类 - java
摘要:7.1、List(允许重复元素) ArrayList: 底层数据结构:Object[] 在查询(get)、遍历(iterator)、修改(set)使用的比较多的情况下,用ArrayList 可扩容,容量无限 LinkedList 底层数据结构:环形双向链表 在增加(add)、删除(remove)使用
阅读全文
摘要:1、Java最常用的集合类 Collection接口 List接口(允许有重复元素):ArrayList、LinkedList、Vector、Stack Set接口(不允许有重复元素,可用于去重操作):HashSet、TreeSet Map接口 HashMap TreeMap(具有按key排序的功能
阅读全文
摘要:1、ArrayList 非线程安全 基于对象数组 get(int index)不需要遍历数组,速度快; iterator()方法中调用了get(int index),所以速度也快 set(int index, E e)不需要遍历数组,速度快 add方法需要考虑扩容与数组复制问题,速度慢 remove
阅读全文
摘要:阅读目录 一、LinkedList简介 二、LinkedList源码分析 三、关于LinkedList的几点说明 阅读目录 一、LinkedList简介 二、LinkedList源码分析 三、关于LinkedList的几点说明 回到顶部 一、LinkedList简介 LinkedList是一种可以在
阅读全文
摘要:Collection(集合类) 我们是使用数组来保存数据,但是他的长度一旦创建,就已经确定了,当我们要动态传入穿值,数组就有些局限了,集合类就孕育而生;所谓集合,就是来保存,盛装数据,也可称为容器类;使用的类 在java.util 包里 集合类的分类 一、Collection(一组对立的元素)Lis
阅读全文
摘要:类集的概念是从JDK 1.2 之后正式完善的一套开发架构,其基本的作用就是完成了一个动态的对象数组,里面的数据元素可以动态的增加 类集提供了以下的几种接口: 单值操作接口:Collection、List、Set List 和 Set 是Collection 接口的子接口 一对值的操作接口:Map 排
阅读全文
摘要:Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来 Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用 [plain] view plain copy E push(E item) 把项压入堆栈顶部。 E
阅读全文
摘要:JAVA 中,使用 java.util.Stack 类的构造方法创建对象。 public class Stack extends vector 构造方法 : public Stack() 创建一个空 Stack。 方法: 1. public push (item ) 把项 压入栈顶。其作用与 add
阅读全文
摘要:Chronometer是一个简单的计时器,你可以给它一个开始时间,并以计时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始。在默认情况下,Chronometer组件只输出MM:SS或H:MM:SS的时间格式。例如,当计时到1分20秒时,Chronometer组件会显示01:20。如果想改变
阅读全文
摘要:安卓提供了一个计时器组件:Chronometer,该组件extends TextView,因此都会显示一段文本,但是它显示的时间是从某个起始时间开始过去了多少时间,它只提供了android:format一个属性用于指定计时器的计数格式。 Chronometer的用法很简单,它支持如下用法: getB
阅读全文
摘要:ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 import java.util.*; /** * 演示Vector的使用。包括Vector的创建、向Vector中添加元素、从Vector中删除元素、 * 统计Vector中元素的个数和遍历Ve
阅读全文
摘要:1、并发编程中的三个概念 在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念:1.1.原子性原子性:即一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 一个很经典的例子就是银行账户转账问题:老公去在 ATM 上
阅读全文
摘要:1、ThreadLocal由来 synchronized这类线程同步的机制可以解决多线程并发问题,在这种解决方案下,多个线程访问到的,都是同一份变量的内容。为了防止在多线程访问的过程中,可能会出现的并发错误。不得不对多个线程的访问进行同步,这样也就意味着,多个线程必须先后对变量的值进行访问或者修改,
阅读全文
摘要:1、引言 1.1 什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,这种资源可以是各种类型的的资源:一个变量、一个对象、一个文件、一个数据库表等,而当多个线程同时访问同一个资源的时候,就会存在一个问题:由于每个线程执行的过程是不可控
阅读全文
摘要:面向对象的三个基本特征是:封装、继承、多态。 封装: 概念理解: 封装是指将对象的状态信息隐藏在对象内部,不允许外部的程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。 封装是面向对象编程语言对客观世界的模拟,客观世界里的属性都是被隐藏在对象内部,外界无法直接操作和修
阅读全文
摘要:1、TreeMap 简介 TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,红黑树通过一些限制,使其不会出现二叉树排序树中极端的一边倒的情况,相对二叉排序树而言,这自然提高了查询的效率。 红黑树的基本性质如下:1、每个节点都只能是红色或者黑
阅读全文
摘要:1、LinkedHashMap简介 1.1 LinkedHashMap数据结构 LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,
阅读全文
摘要:1、Hashtable简介 (1)Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 (2)Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。 (3)Hashtab
阅读全文
摘要:1、LinkedList简介 (1)LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 (2)LinkedList同样是非线程安全的,只在单线程下适合使用。 (3)LinkedList实现了Serializable
阅读全文
摘要:1、ArrayList 简介 (1)ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 (2) ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(Li
阅读全文

浙公网安备 33010602011771号