collection

collection中的queue

帅比萌擦擦* 提交于 2019-12-02 03:42:16
一、Queue的类图 二、queue的相关的方法           抛出异常 处理失败 堵塞操作  添加头结点数据(满) add offer put 拿出头结点并且删除 remove poll(null) take 拿出头结点但是不删除 element peek(null) 我们可以使用put和take用来模拟消费者-生产者模式 来源: https://www.cnblogs.com/fc520/p/11729540.html

第十章 Scala 容器基础(十二):使用Iterators

人走茶凉 提交于 2019-12-01 19:44:48
Problem 你需要在你的应用中使用 iterator。 Solution 尽管使用带有hasNext()和next()方法的 iterator是非常通用的遍历Java集合的方法。但是它们在Scala集合中并不经常被使用。因为Java集合有许多像map和foreach的方法让让你可以轻松地实现自己的算法。必须澄清的是,在Scala中我从未直接使用过如下代码: // don't do this val it = collection.iterator while (it.hasNext) ... 话虽如此,一些时候你还是会用到一个iterator,一个最好的例子就是 io.Source.fromFile方法。这个方法返回一个迭代器,这非常好,因为当你在使用非常大的文件的时候,把整个文件读进内存并不是一个好的选择。 对于 iterator,最重要的一点是,当你使用完之后,它就不能用了。你可以使用一个 iterator来打印集合中元素,但是你只能用一次,当你再次调用的时候,你会发现,你什么都得不到了。 scala> val it = Iterator(1,2,3) it: Iterator[Int] = non-empty iterator scala> it.foreach(println) 1 2 3 scala> it.foreach(println) 一个

java collection与list详解

微笑、不失礼 提交于 2019-12-01 10:09:43
转载自: https://www.cnblogs.com/joyco773/p/6759981.html Collection接口有两个子接口:List(链表|线性表)和Set(集) Collection接口的共性方法: List集合: Collections类的shuffle()方法的作用是将List中的内容随机打乱顺序。 来源: https://www.cnblogs.com/doyi111/p/11679316.html

第十章 Scala 容器基础(十八):从集合中提取元素序列

不问归期 提交于 2019-11-30 15:27:46
Problem 你想要从集合中提取一串连续的元素,通过指定开始和结束位置或者通过一个方法。 Solution 你可以利用一些集合方法来从有序集合中提取一串连续的元素。比如drop,dropWhile,head,headOption,init,last,lastOption,slice,tail,take,takeWhile。 给定一个有序集合: scala> val x = (1 to 10).toArray x: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 利用drop(n)方法,你可以提取集合除了前n个元素外,剩余的元素。 scala> x.drop(3) res0: Array[Int] = Array(4, 5, 6, 7, 8, 9, 10) 利用dropWhile方法,会丢掉从集合开始一直到能满足你传给dropWhile方法的判断条件为true的所有元素。 scala> x.dropWhile(_ < 6) res2: Array[Int] = Array(6, 7, 8, 9, 10) dropRight(n)方法和drop很像,只不过它会丢掉集合右侧的n个元素。 scala> x.dropRight(3) res4: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7) take(n

java容器的两大类Collection和Map

≯℡__Kan透↙ 提交于 2019-11-30 02:17:14
java容器包括Collection和Map两种,Collection储存着对象的集合,而Map储存着键值对(两个对象)的映射表。 Collection: 1)Set · TreeSet · HashSet · LinkedHashSet 2)List · ArrayList(基于动态数组实现,线程不安全) · Vector (线程安全的,同步的,开销必ArrayList大,访问速度更忙。Vector 每次扩容请求其大小的 2 倍空间,而 ArrayList 是 1.5 倍) · LinkedList(基于双向链表实现,只能顺序访问,可以快速插入和删除元素) 3)Queue · LInkedList · PriorityQueue Map 1)TreeMap · LinkedHashMap 2)HashMap(允许键值对为null,线程不安全) 3)HashTable(线程安全) 来源: https://www.cnblogs.com/lhh666/p/11546298.html

thinking in java笔记 11 持有对象

半世苍凉 提交于 2019-11-29 20:35:18
***基本概念 java容器类库用途是保存对象。分为2类: 1 Collection 一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序(通常与插入的顺序相同)。 2 Map 一组成对的键值对对象,允许使用键来查找值,将数字和对象关联到一起。映射表允许我们使用另一个对象来查找某个对象,也被称为关联数组或字典。 应尽量使用接口去声明对象,如: List<Apple> apples = new ArrayList<Apple>(); 创建出一个具体类的对象,将其转型为对应的接口,在其余的代码中都使用这个接口。 ***Arrays类 Collections类 包含一些常用的排序 查询 转换等静态方法 class A{} class AA1 extends A{} class AA2 extends A{} class AAA1 extends AA1{} class AAA2 extends AA1{} public class MyTest { public static void main(String[] args) { List<A> list1=Arrays. asList ( new AA1(), new AA2()); //right List<A> list2=

java集合框架总结(一)

大憨熊 提交于 2019-11-29 02:48:44
本系列博客详细介绍了JAVA集合框架,你将知道: 一.学习目标 1)java集合框架的层次结构 2)使用Collection接口定义的公用方法对集合和线性表操作 3)使用Iterator接口遍历集合 4)使用JDK的增强for循环替代迭代Iterator进行集合遍历 5)熟悉Set接口,了解何时及如何使用HashSet,LinkedHashSet或TreeHashSet来存储元素 6)熟悉Map接口,了解何时及如何使用HashMap,LinkedHashMap或TreeTable来存储元素 7)使用Comparator接口来比较元素,以及实现自然排序,定制排序 8)熟悉List接口,了解何时以及如何使用ArrayList或者LinkedList来存储元素 9)区分Vector与ArrayList,并了解如何使用Vector和Stack 10)使用JDK1.5的一般类型来简化程序设计 11)理解Collection和Map的区别,知道何时及如何使用HashMap,LinkedHashMap,TreeHashMap来存储 12)使用Collections类中的静态方法,及如何解决多线程并发访问集合时 的线程安全问题 13)使用Arrays类中的静态方法 14)如何重写hashCode() 和 equals()实现响应功能 15)使用Properties 类处理属性文件 二:Java

Collection/迭代器

醉酒当歌 提交于 2019-11-28 17:46:05
1.Collection中的元素是孤立的是单身,需要一个一个向里面存;Map集合中值是成对存在的,每个元素由键和值两部分组成,取值时需要通过键来得到相应的值 2.Collection是单列集合,Map是双列集合;Map中不能包含相同重复的键,可以存重复的值,一个键只能对应一个值, 3.Map集合中包含HashMap(怎么存不一定怎么取)和LinkHahMap(怎么存就怎么取) 4.HashMap<K,V>(泛型:键,值):存取数据才有的哈希表结果,元素怎么存不一定怎么取,由于要保证键的唯一不重复,需要重写键的hashcode()和equals()方法 5.创建map集合:Map<String,String> map =new HashMap<String,String>();向map存值:map.put("","");Map集合的取值方式:map.get(key) map不能存重复值的键,如果存了重复键,那么后来键对应的值会覆盖前面键的值,但是值可以重复存入,一个键只能对应一个值 6.遍历不能用增强for:因为Map集合的泛型有俩,不知道遍历哪一个;不能用迭代器:因为Map集合没有迭代器对象,迭代器只存在于Collection集合中;不能用普通for:因为没有下标 7.Map的遍历方式;1.keyset():增强for遍历和迭代器遍历;2.entry()方法遍历:增强for和迭代器

java for循环的几种写法

人走茶凉 提交于 2019-11-28 10:00:23
J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。 在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。 对于遍历数组,这个循环一般是采取这样的写法: 清单1:遍历数组的传统方式 /* 建立一个数组 */ int[] integers = { 1, 2, 3, 4}; /* 开始遍历 */ for ( int j = 0; j<integers.length; j++){ int i = integers[j]; System.out.println(i); } 而对于遍历Collection对象,这个循环则通常是采用这样的形式: 清单2:遍历Collection对象的传统方式 /* 建立一个Collection */ String[] strings = { "A", "B", "C", "D"}; Collection stringList = java

api封装

我只是一个虾纸丫 提交于 2019-11-28 07:11:11
const sql={ insert: function(collection,insertData){ return new Promise(function(resolve,reject){ collection.insertMany(insertData,(err,data)=>{ if(err) throw err; resolve(data) }) }) }, // find (collection,whereObj,showObj){ // collection.find(whereObj,showObj).exec((err,data)=>{ // if (err) throw err; // console.log(data); // }) // } find(collection,whereObj,showObj){ return new Promise(function(resolve,reject){ collection.find(whereObj,showObj).exec((err,data)=>{ if(err)throw err; resolve(data); }) }) }, update (collection,whereObj,updateObj,updateType){ updateType=updateType||'updateOne'