Java中几种常用的队列 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素.同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列. 第一种:ConcurrentLinkedQueue,高性能无阻塞无界队列 代码demo: Concurrent…
  fail-fast机制,即快速失败机制,是java集合框架中的一种错误检测机制.多线程下用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除),则会抛出Concurrent Modification Exception.fail-fast机制并不保证在不同步的修改下一定会抛出异常,这种机制一般仅用于检测bug. 那么在实际测试代码当中是如何表现的呢? 先说结论:在用for遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除),则会抛出Concu…
CSDN日报20170219--<程序员的沟通之痛> [技术直播]揭开人工智能神秘的面纱 程序员1月书讯 云端应用征文大赛,秀绝招,赢无人机! JAVA 集合 List 分组的两种方法 2016-05-25 19:25 2243人阅读 评论(0) 收藏 举报 本文章已收录于: .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px #ededed; } .embody_b{ margin:0 ; padd…
Java集合框架中的List与Set // 简书作者:达叔小生 Collection -> Set 无序不重复 -> 无序HashSet,需要排序TreeSet -> List 有序可重复 -> 查,改ArrayList,增删LinkedList List为列表,中在列表中的对象是由顺序的排序的,并且是有重复的对象. 简单为:有序,有重复. Set为集合,在集合中的对象是不按照顺序排列的,并且是没有重复的对象的. 简单为:无序,无重复. Set为无序集合,无序无重复: List为有…
Java集合框架中的List与Set // 简书作者:达叔小生 Collection -> Set 无序不重复 -> 无序HashSet,需要排序TreeSet -> List 有序可重复 -> 查,改ArrayList,增删LinkedList List为列表,中在列表中的对象是由顺序的排序的,并且是有重复的对象. 简单为:有序,有重复. Set为集合,在集合中的对象是不按照顺序排列的,并且是没有重复的对象的. 简单为:无序,无重复. Set为无序集合,无序无重复: List为有…
java类库的基本结构 Iterable public interface Iterable<T> 实现这个接口允许对象成为 "foreach" 语句的目标. 也就是说,只有实现了Iterable接口的类才能使用foreache语法. 其实java在编译的时候讲foreach编译成了iterator操作. 方法摘要 Iterator<T> iterator() 返回一个在一组 T 类型的元素上进行迭代的迭代器. Collection 接口 Collection&…
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不是线性的存放对象的引用,Map接口提供了一种映射关系,所有的元素都是以键值对(Entry类型对象实例)的方式存储的,所以能够根据key快速查找value,key是映射关系的索引,value是key所指向的对象,注意,这里的value不是一个数值,而是一个对象的引用,Java集合框架的元素均是指对象!…
Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放到同一个集合中,否则是不能放进去的: 集合可以对元素进行简单快速的查找.插入.删除操作 某些集合可以有<key value>映射的关系 数组的长度是固定的,而集合的长度是跟随元素的个数动态变化的,灵活性和扩展性都比数组更加优越 数组只能存放基本类型的数据,而集合存放的是对象引用类型的 数组只能通过…
java集合的工具类Collections中提供了两种排序的方法,分别是: Collections.sort(List list) Collections.sort(List list,Comparator c) 第一种称为自然排序,参与排序的对象需实现comparable接口,重写其compareTo()方法,方法体中实现对象的比较大小规则,示例如下: 实体类:(基本属性,getter/setter方法,有参无参构造方法,toString方法) package test; public cla…
之前有一篇笔记,讲的是集合和泛型,这几天看Java集合中几个接口的文档,思绪非常混乱,直到看到Oracle的“The Collections Framwork”的页面,条理才清晰些,现在进行整理. 一.为什么需要集合? 应用程序中经常需要创建很多的对象来完成一定的工作,所以我们需要将这些一定数目的对象组织起来进行统一管理. 对象数组能够满足我们,如果对象的数目是清晰有限且生命周期可知,那么使用对象数组来进行管理是非常简单和直观的. 数组一旦创建,它的容量便固定了,在它的生命周期里再也无法被改变.…
Java编程语言中几种不同的引用类型是面试时经常容易被问到的问题:强引用,软引用,弱引用,虚引用. 其实除了Java之外,某些 其他编程语言也有类似概念,比如ABAP.今天我们就来比较一下. 根据ABAP帮助文档,我们可以把某个对象的引用包在一个Weak Reference的实例里.ABAP的Weak Reference实例通过类CL_ABAP_WEAK_REFERENCE实现. 看下面的例子:首先我在堆上创建了一个新的LCL_PERSON实例,然后包到一个ABAP weak reference…
写在前面 随着Java 8引入了函数式接口和lambda表达式,Java 8中的集合框架(Java Collections Framework, JCF)也增加相应的接口以适应函数式编程.   本文的目标是带领大家熟悉Java 8中集合框架新增的常用接口,让我们的代码更简洁.更高级.   本文的示例代码可从gitee上获取:https://gitee.com/cnmemset/javafp     Java 8中的集合框架 首先,和大家从整体上了解Java集合框架.   Java集合框架,主要是…
Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的.唯一的数据: Map:以键值对的形式存储数据,以键取值.键不能重复,但值可以重复. 接口的常用实现类:ArrayList.LinkedList.Vector.HashSet.LinkedHashSet.TreeSet.HashMap.LinkedHashMap.TreeMap.HashTable 一.Lis…
1 集合 1.1 为什么会出现集合框架 [1] 之前的数组作为容器时,不能自动拓容 [2] 数值在进行添加和删除操作时,需要开发者自己实现添加和删除. 1.2 Collection接口 1.2.1 Collection基础API Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中. Collection表示集合的根接口,可以看成一个容器,存储了很多对象,这些对象称为Collection元素.Collection要求元素必须是引用数据类型. Collection…
import java.util.*; /* Collection定义了集合框架的共性功能.1,添加    add(e);    addAll(collection); 2,删除    remove(e);    removeAll(collection);     clear(); 3,判断.    contains(e);    isEmpty(); 4,获取    iterator();    size(); 5,获取交集.    retainAll(); 6,集合变数组.    toAr…
java.util.concurrent并发包中提供了一系列的的同步工具类,这些基础类不管是否能在项目中使用到,了解一下使用方法和原理对java程序员来说都是有必要的.博主在看<java并发编程实战>这本书中提到了其中几个工具类,本文就对这些类进行简单的描述. CyclicBarrier(栅栏) 4个朋友约好下班一起玩吃鸡,分别是M4,AWM,SKS,WIN94.这四个哥们下班时间不一样,决定好一个时间一起上号搞. 大家约好到家就开游戏,必须珍惜生命,争分夺秒玩游戏. 我们用栅栏来模仿一下场景…
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 这周我们只需记住三种遍历方法 1.通过keySet()获取键,再利用hashmap里面的.get(key)方法通过键获取值 2.通过Map.entry()获取键值对,可以同时利用迭代器直接遍历 3.通过父类Collection获取值 package com.test.first; import java.util.ArrayList; import java.util.Collection; import java.…
List集合的contains()方法用于判断集合中包不包含某个元素,返回值是boolean. Map集合的containsKey()和containsValue()方法和上面的相同. 示例: public static void main(String[] args) { List list = new LinkedList(); list.add("A"); list.add("B"); list.add("C"); list.indexOf…
public class ArrayListTest { public static void main(String[] args) { //创建空的ArrayList列表 ArrayList al = new ArrayList(); //添加元素 al.add("hello");//在列表末尾添加元素 al.add(null);//ArrayList允许null al.add(new Boolean(true));//基本数据类型如int,double,boolean自动加包成相…
 循环的条件 反复执行一段相同或相似的代码 一     for循环        先判断,再执行   代码示例为 ① for (int i = 0; i < args.length; i++) 括号内分别为循环变量类型 循环变量名称;循环变量的范围;循环变量进行运算{     }    ②for (int i : integers)括号内分别为 :循环变量类型 循环变量名称 : 要被遍历的对象 {    }       使用方法:如果 循环次数确定 一般用for循环 实例为 ①求100以内的和…
1. Set 接口实例存储的是无序的,不重复的数据.List 接口实例存储的是有序的,可以重复的元素. 2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>. 3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度.查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> .…
对于自定义的类来说,必须要重写hashcode和equals方法 hashcode方法的作用是确定元素在数据结构中的位置,当两个元素的hash值一样时,需要用equals方法判断两个元素是否是一样的,如果相同,则只需存放一个元素,如果不同,则存放两个元素 重写hashcode方法: public int hashcode(){ int result=17; result=31*result+a.hashcode(); result=31*result+b.hashcode(); return r…
原作者滴着:http://www.cnblogs.com/eflylab/archive/2007/01/20/625237.html Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes).集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题. 1 Collection 和 Collections的区别. 2 List, Set, Map是否继承自…
MySQL常用的引擎有:InnoDB存储引擎.MyISAM存储引擎.MEMORY存储引擎.Archive存储引擎 InnoDB存储引擎 InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎. InnoDB主要特性有: 1.InnoDB给MySQL提供了具有提交.回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读.这些功能增加了多 用…
public class ListNode { public int value; public ListNode next; public ListNode(int value) { this.value = value; } } public class Mylist { /** * 头结点插入 */ public static void headInsert(ListNode head, ListNode newHead) { ListNode old = head; head = new…
首先你要知道 where->group by->having->order by/limit  ,这个就是写sql语句时的顺序  常用的5个聚集函数: Max               求最大 Min                求最小 Sum               求总和 Avg                求平均 Count            计算总行数    …
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7229478.html 1.概述 Java的集合类库很是丰富,囊括了大部分的常见数据结构形式,让我们可以有目的性的选择适合当前业务场景和功能场景的集合类.合适的集合框架可以最大程度的提升执行速度和效率. Java集合类库中所有的集合类都始于Collection接口和Map接口,前者表示单值集合,后者表示映射集合(双值集合). Java集合框架中的Abstract开头的抽象类,其实是JDK开…
1, Set :集合中对象不按特定的方式排序,并且没有重复对象,它有些实现类能对集合按特定方式排序 List :集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索独享,List和数组有些相似. Map : 集合中的每一个元素包含一对键对象和值对象,集合汇总没有重复的键对象,值对象可以重复.它的有些实现类能对集合中的键对象进行排序. 2,Set 和 List 接口继承了Collection 接口. ‘ Collection’ 接口 iterator() 和 toArra…
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.基本概念 1)Collection:一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的顺序 保存元素,而Set不能有重复元素.Queue按照排队规则了确定对象产生的顺序(通常与它们被插 入的顺序相同). 2)Map:一组成对的“键值对”对象,允许你使用键来查找值.ArrayList允许你使用数字来查找值 ,因此在某种意义上讲,他讲数字与对象关联在了一起.映射表允许我们…