collection

WebAPi添加常用扩展方法及思维发散

て烟熏妆下的殇ゞ 提交于 2020-02-28 14:45:34
前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取。 WebAPi常用扩展方法 (1)获取所有键值对 /// <summary> /// 获取所有键值 /// </summary> /// <param name="request"></param> /// <returns></returns> public static Dictionary<string, string> GetQueryStrings(this HttpRequestMessage request) { return request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value, StringComparer.OrdinalIgnoreCase); } (2)获取单个key对应value /// <summary> /// 获取单个键值 /// </summary> /// <param name="request"></param> /// <param name="key"></param> /// <returns></returns> public static string

Java--Collections工具类

廉价感情. 提交于 2020-01-25 18:04:07
Collections是y一个操作Set,List,Map等集合的工具类 排序操作: reverer(List):反转List中的元素种类 shuffle(List):对list集合元素进行随机排序 sort(List):根据元素的自然排序对指定的List集合按升序排序 sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序(定制排序) swap(List,int,int):将指定的List集合中的i处元素和j处元素进行交换 @Test public void test1 ( ) { List list = new ArrayList ( ) ; list . add ( 123 ) ; list . add ( 456 ) ; list . add ( 789 ) ; System . out . println ( list ) ; //reverer(List) Collections . reverse ( list ) ; System . out . println ( list ) ; //shuffle(List) Collections . shuffle ( list ) ; System . out . println ( list ) ; //sort(List) Collections . sort

Spark学习(二)scala语法

江枫思渺然 提交于 2020-01-17 19:20:42
一,变量 1,基本数据类型 2,基本运算符 3,定义变量 4,复杂变量 (1)定义数组Array: 声明:val aList=new Array[数据类型type](n):声明存储数据类型为type的n个对象,数组初始化为null 声明:val aList=Array(n1,n2,n3...):声明时,可以不用声明数据类型。 调用:aList(m):调用第m个元素。 声明多维数组:val aList=Array.ofDim[数据类型](a,b):声明行为a,列为b的二维数组 调用多维数组中的元素:aList(a1)(b1):调用数组中行为a1,列为b1的元素 (2)定义元组Tuple(对多个不同类型的对象的简单封装): 声明: val tStudent=("name1",23,"男",560.00):声明元组类型学生的信息为(姓名,年龄,性别,月开销) 调用:tStudent . _1(取出"name1");tStudent . _2(取出23);tStudent . _3(取出"男").... (3)定义容器Collection(导包scala.collection;scala.collection.mutable;scala.collection.immutable) scala.collection:封装了可变容器和不可变容器的通用操作的超类( 从上到下依次继承都是特质

MongoDB之高级查询

懵懂的女人 提交于 2020-01-16 21:49:15
高級查詢 統計查詢 使用count方法 db.collection.count(query,options) 舉例 統計所有的記錄數 db.collection.count() 按條件統計記錄數 db.collection.count({userid:‘1’}) 分頁查詢 limit()讀取指定數量的數據,skip()跳過指定數量的數據 舉例 只返回三條數據 db.collection.find().limit(3) 前n個不要,返回後面的數據 db.collection.find.skip(n) 分頁(每頁2個,第二頁開始),也就是跳過前兩個,只取兩個 db.collection.find().skip(2).limit(2) 排序 sort方法指定排序的字段,使用1和-1指定排序的方式,1是升序 db.collection.find().sort({key:1}) skip(),limit(),sort()一起的時候,執行順序是sort,skip,limit 正則複雜條件查詢 mongodb的模糊查詢是通過正則表達式的方式來實現的 db.collection.find({field:/正則表達式/}) 舉例(字段a中包含b內容的數據) db.collection.find({a:/b/}) 舉例(字段a中以b開頭的數據) db.collection.find({a:/^b/})

集合操作(一)ArrayList,LinkedList源码分析

一世执手 提交于 2020-01-07 17:33:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ArrayList: 构造函数: ArrayList提供了三种方式的构造器,可以构造一个默认初始容量为10的空列表、构造一个指定初始容量的空列表以及构造一个包含指定collection的元素的列表,这些元素按照该collection的迭代器返回它们的顺序排列的。 ArrayList底层是使用一个Object类型的数组来存放数据的。 transient Object[] elementData; // non-private to simplify nested class access size变量代表List实际存放元素的数量 private int size; 不指定ArrayList大小时,默认数组大小为10 private static final int DEFAULT_CAPACITY = 10; 接下来看几个常用的方法: add: 1. public boolean add(E e) { ensureCapacityInternal(size + 1); // 扩容检测 elementData[size++] = e; //新增元素加到末尾 return true; } 2. public void add(int index, E element) { rangeCheckForAdd

Collection及其师傅Iterable

断了今生、忘了曾经 提交于 2020-01-07 17:32:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上一节我们缕清了Collection家族的关系,接下来我们就来看看这个家族的创始者及其师傅。 1. 师傅Iterable Iterable是一个接口类,先看看接口里面的方法: 其中第二个和第三个方法,都是java8新增的,看源码会发现,java8后,可以在接口里面定义默认(关键字default)的方法(必须实现,可以空实现),而且实现类中还可以重写default方法,这样一来有点类似抽象类,只不过接口类用来授艺,抽象类用来遗传。最终给我们代码的迭代带来很大便利。 Iterable里面最主要的当然迭代器Iterator,Iterator本身是接口,这么说来接口师傅(水平有限)传授的都是大道的终极要义,功夫还是得弟子苦练。后来师傅能力提升(java8来了),可以给弟子大道的精华(default方法),让弟子可以毫不费力直接领悟,甚至弟子还可以加以创新(重写),但是要注意多接口实现造成的默认方法冲突问题(冲突很容易解决,就不多说)。关于Iterator在子类的实现可以查看ArrayList源码,很简单,只是大家用得多的是next()方法,不知有没有注意到previous()方法。值得一提的是在Iterator接口里面新增了默认方法:forEachRemaining方法,允许传入一个行为

Collection体系

回眸只為那壹抹淺笑 提交于 2020-01-01 15:16:02
集合体系 A:集合的由来   * 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 * B:数组和集合的区别   * 区别1 :     * 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值     * 集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象   * 区别2:     * 数组长度是固定的,不能自动增长     * 集合的长度的是可变的,可以根据元素的增加而增长 * C:数组和集合什么时候用   * 1,如果元素个数是固定的推荐用数组   * 2,如果元素个数不是固定的推荐用集合 Collection   List(有索引,可存重复)             Arraylist             LinkedList             Vector   Set(无序,不能存重复)             HashSet             TreeSet 来源: https://www.cnblogs.com/yaobiluo/p/11305576.html

新手,正在学Java Collection,瞎写点东西-一个基于链表的stack及其遍历

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-22 11:42:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> import java.util.Iterator; public class LinkedStack<U> { private class Node<T> { T data; Node<T> next; Node() { data = null; next = null; } Node(T data, Node<T> next) { this.data = data; this.next = next; } boolean end() { return data == null && next == null; } } private Node<U> top = new Node<U>(); public U pop() { U result = top.data; if (!top.end()) top = top.next; return result; } public void push(U data) { top = new Node<U>(data, top); } public Iterator<U> iterator() { return new Iterator<U>() { public boolean hasNext() { return !top.end(); } public U

第十章 Scala 容器基础(二十六):创建并使用Enumerations

依然范特西╮ 提交于 2019-12-17 13:33:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Problem 你准备使用一个枚举类(一组被命名的值作为常量)在你的应用里。 Solution 继承scala.Enumeration来创建你的枚举类: package com.acme.app { object Margin extends Enumeration { type Margin = Value val TOP, BOTTOM, LEFT, RIGHT = Value } } object Main { def main(args: Array[String]) { import com.acme.app.Margin._ val currentMargin = TOP if (currentMargin == TOP) println("working on TOP") import com.acme.app.Margin Margin.values.foreach(println) } } 对于创建一组常量, Enumerations是非常有用的,比如一周中的天,一年中的周。还有许多其他的情况,当你用到一组相关常量的时候。 你也可以用下面这种方案,但是他回根据你的代码去生成4次,并且如果你只是想把它作为枚举来用的话,有许多东西是你用不到的: package com.acme.app {