element

JAVA 泛型与常见的数据结构和集合

耗尽温柔 提交于 2020-05-07 19:00:49
泛型与常见的数据结构和集合 集合&迭代器   集合体系结构图   由于不同的数据结构(数据的组织,存储方式),所以java为我们提供了不同的集合   不同的集合他们的功能都是相似的,不断向上提取,将共性抽取出来 Collection中的常用功能 boolean add(Object e): 向集合中添加元素 void clear():清空集合中所有元素 boolean contains(Object o):判断集合中是否包含某个元素 boolean isEmpty():判断集合中的元素是否为空 boolean remove(Object o):根据元素的内容来删除某个元素 int size():获取集合的长度 Object[] toArray():能够将集合转换成数组并把集合中的元素存储到数组中 collections Collection和Collections有什么区别?     Collection是集合体系的最顶层,包含了集合体系的共性     Collections是一个工具类,方法都是用于操作Collection static void swap(List list, int i, int j) :将指定列表中的两个索引进行位置互换 static void sort(List<T> list) :按照列表中元素的自然顺序进行排序 static void shuffle

addEventListener 和 onclick 简单比较

此生再无相见时 提交于 2020-05-07 18:34:35
首先说一下addEventListener 语法: element.addEventListener(event, function, useCapture) 这里的event是事件名,function是相应的事件,这个useCapture是一个布尔值,默认是 false ,就是说在 冒泡阶段 执行,如果为 true ,就在 捕获阶段 执行 利用addEventListener可以简单复现网页中对一个对一个元素操作之后 从window-->document-->html-->body-->...-->目标元素 的捕获,然后反过来冒泡的过程 addEventListener 是DOM2版本中加入的 绑定事件有几种方式 Event Listeners (包含addEventListener和IE的attachEvent) IE 8 以及更低版本的 IE 中,需要用 attachEvent 方法: element.attachEvent('onclick', function() { /* do stuff here*/ }); 对于 IE 9 和更高版本的 IE,以及其它浏览器,则要用 addEventListener 方法: element.addEventListener('click', function() { /* do stuff here*/ }, false);

java学习--基础知识进阶第六天--笔记

北城以北 提交于 2020-05-07 18:29:54
今日内容 Collection集合&迭代器 增强for&泛型 常见的数据结构 List子体系 集合的体系结构 集合不是指某一个类,它是一个体系,其中包含了很多的类和接口 单列集合(Collection) Collection |-List:有序(怎么存就怎么取)、可以存储重复元素、有整数索引 |-ArrayList:底层是数组结构 |-LinkedList:底层是链表结构 |-Vector:底层是数组结构 |-Set:无序(不能保证怎么存就怎么取),不能存储重复元素、没有整数索引 |-HashSet 双列集合(Map) 学习的时候,从上往下学,因为最顶的接口或者类有共性的内容,学会了共性,下面具体的类的使用也就学会了 使用的时候,从下往上使用,使用的时候需要使用具体的类 Collection 是单列集合的根接口 常用方法 boolean add(E e) : :添加元素 void clear() :清空集合 boolean contains(Object o) :判断是否包含 boolean isEmpty() :判断集合是否为空 boolean remove(Object o) :删除指定的元素 int size() :集合的长度 Object[] toArray() :将集合转为Object数组 Iterator<E> iterator() :用于获取迭代器

关于elment-ui树形控件Tree的使用

落爺英雄遲暮 提交于 2020-05-07 17:38:58
如果简单使用的tree树形控件,按照Element ui Tree 树形控件 官方文档使用即可,基本上能够完成大部分的需求。 但是如果需要对树形结构进行额外操作,仅仅根据官方文档提供的方案的话,可能就不太够了,需要我们更深入的研究树形控件。 关于树形结构的增删改查操作,官方提供了append和remove两个方法,可以很方便的实现添加节点和删除节点,关键还有一个重命名的操作,并没有提供直接的方法,那就需要我们去变通。 以下提供两个方案: 1、利用append方法 官方说明:    说提供两个参数,但是经过验证 <el-button type="text" size="mini" icon="el-icon-edit" @click.stop.prevent="() => append(node, data)">重命名</el-button>   所以需要为当前节点进行重命名的时候,可以依赖parentNode参数,获取父节点,然后操作就类似于为当前节点添加子节点差不多了,需要注意的是:   添加节点,是对当前节点的子节点children通过数组方法push,或者unshift;   重命名节点,是对当前节点的父节点的子节点children通过数组方法splice替换当前节点,需要先确定当前数据在该数组中的index const index = children.findIndex

java并发编程之美-阅读记录5

大兔子大兔子 提交于 2020-05-07 16:36:31
java并发包中的并发List 5.1CopeOnWriteArrayList   并发包中的并发List只有CopyOnWriteArrayList,该类是一个线程安全的arraylist,对其进行的修改操作都是在底层的一个复制数组上进行的,也就是使用了写时复制策略。   该类的结构: public class CopyOnWriteArrayList<E> implements List<E> , RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8673264195747942595L ; // 可重入的独占锁,用来保证对arraylist的修改操作,同一时间只有一个线程 final transient ReentrantLock lock = new ReentrantLock(); // 存放对象的底层数组 内存可见性 private transient volatile Object[] array; // 基于硬件的原子操作了Unsafe private static final sun.misc.Unsafe UNSAFE; // 锁的偏移量 private static final long lockOffset; static

vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解

天大地大妈咪最大 提交于 2020-05-07 16:35:49
做后端管理系统,永远是最蛋疼、最复杂也最欠揍的事情,也永远是前端开发人员最苦逼、最无奈也最尿性的时刻。蛋疼的是需求变幻无穷,如同二师兄的三十六般变化;复杂的是开发难度寸步难行,如同蜀道难,难于上青天;欠揍的是产品随心所欲、为所欲为,如同村霸横行乡里、只手遮天;苦逼的是前端苦不堪言,如同哑巴吃黄连,有苦说不出;无奈的是前端无可奈何花落去,如同至尊宝戴上金箍无法爱你,摘下金箍无法救你;尿性的是前端苦尽甘来,如同唐僧师徒历经九九八十一难,终成正果的高光时刻! 又特么的南辕北辙了,矫情个鸟啊!有需求,上啊,很复杂,想啊,开发周期短,撸起袖子加油干啊(真特么的下流,一天到晚都是上啊,干啊,你特么泰迪啊)!好,闲话少叙,言归正传,咱们上一次讲到白眉大侠徐良...(你给我滚犊子) 需求是这样的,有一个树形控件,默认所有节点都不选中。 <span style="font-size:12px;color:#666;">PS:如果贵司的需求没有那么复杂,就可以跳过以下内容,直接使用element-ui框架提供的tree树形控件及API即可。</span> 要求: 1、选中父节点,子节点及孙子节点(甭管有多少层级,兹要是子辈节点)可以不选中,取消选中父节点,子节点及孙子节点也还是没有任何变化; 2、选中子节点或孙子节点,必须选中父节点及祖父节点(甭管有多少层级,兹要是祖辈节点),取消选中子节点或孙子节点

Golang groupcache LRU 缓存简介与用法

你说的曾经没有我的故事 提交于 2020-05-07 15:06:06
1.LRU LRU(Least Recently Used,最近最久未使用算法)是一种常见的缓存淘汰算法,当缓存满时,淘汰最近最久未使用的元素,在很多分布式缓存系统(如 Redis , Memcached)中都有广泛使用。其基本思想是如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当缓存满时,最久未被访问的数据最先被淘汰。具体做法是将最近使用的元素存放到靠近缓存顶部的位置,当一个新条目被访问时,LRU 将它放置到缓存的顶部。当缓存满时,较早之前访问的条目将从缓存底部被移除。 2.groupcache LRU Cache 简介 在 Go 中,如果想使用 LRU 缓存,可以使用 Google Golang 团队官方出品的开源库 groupcache ,开源地址见 Github.groupcache 。LRU 缓存通过 groupcache/lru/lru.go实现,它主要是封装了一系列 LRU 缓存操作的相关的接口。主要有: //创建一个 LRU Cache func New (maxEntries int ) *Cache //向 Cache 中插入一个 KV func (c *Cache ) Add (key Key , value interface { } ) //从 Cache 中获取一个 key 对应的 value func (c

JavaScript DOM操作

我的未来我决定 提交于 2020-05-07 14:50:37
操作DOM DOM中节点类型 Document文档节点:代表整个网页,不代表任何HTML标记,但它是html的父节点 element元素节点:指任何HTML标记。每一个HTML标记就称一个“元素节点”。它可以有文本节点和属性节点。 attribute属性节点:指HTML标记的属性。 text节点:是节点树的最低节点。 核心DOM中的公共的属性和方法 提示:核心DOM中查找结点(标记),都是先从根节点开始的(html节点)。主要是针对于HTML4.0开发的。 HTML DOM的新特性 每一个HTML标记与元素对象的属性一一对应 核心DOM中的属性方法,元素对象都能用 HTML DOM访问HTML元素的方法(最常用) getElementById("id名"); getElementByTagName("TagName名"); //标记,和核心DOM中nodeName一样 getElementByClass("class名"); CSS的DOM动态样式 **使用JS操作CSS中的各属性,JS只能操作修改行内样式。对于类样式,可以通过className来赋值。外联式无法操作** **style样式代替css样式** style对象属性与CSS属性的转换 1.如果是一个单词,则直接写 2.如果是多个单词,则第一个单词全小写,后面每个单词首字母大写,并去掉中划线。 DOM中Event对象

Vue2.0父子组件间事件派发机制

佐手、 提交于 2020-05-07 13:56:26
<p>从vue1.x过来的都知道,在vue2.0中,父子组件间事件通信的<code>$dispatch</code>和<code>$broadcase</code>被移除了。官方考虑是<strong>基于组件树结构的事件流方式实在是让人难以理解,并且在组件结构扩展的过程中会变得越来越脆落</strong>。特别是在组件层级比较深的情况下。通过广播和事件分发的机制,就显得比较混乱了。</p> <p><strong>官方在废除的同时,也为我们提供了替换方案,包括实例化一个空的vue实例,使用<a href="https://cn.vuejs.org/v2/guide/migration.html?#dispatch-" rel="nofollow noreferrer">$emit反应子组件上的状态变化</a></strong></p> <h2>1.使用$emit触发事件</h2> <p><code>helloWorld.vue</code>作为父组件,<code>dialogConfigVisible</code>变量控制子组件弹框显示或隐藏。<br><code>configBox.vue</code>作为子组件,假设为封装的公告弹窗。</p> <p>在父组件中 helloWorld.vue 中</p> <p><strong>< template/></strong></p>

HTML5基本标签使用header,nav和footer

折月煮酒 提交于 2020-05-07 13:07:17
大家可能都知道HTML5中出现了很多以前没有的标签,例如,header,nav,和footer,在这之前我们如果开发相关的页面布局的时候,往往都是使用CSS来定义相关的头部,导航及其页底部分,如下: #nav{ padding: 10px ... } #header{ padding: 10px ... } #footer{ padding: 10px ... } 定义完之后呢,我们使用div标签来组织页面结构,如下: <div id="header"></div> <div id="nav"></div> <div id="footer"></div> 这样的代码让我们创建了很多的非样式的CSS定义,是的代码结构复杂并且不直观易懂。 在新的HTML5标准中,我们定义了一系列的标签,帮助你更语义化的定义页面层次和逻辑,你不需要自己定义相关的DIV,HTML5提供了现成的标签来完成上述的结构化定义,如下: <header></header> <nav></nav> <footer></footer> 使用以上的标签,你只需要在css文件中定义相关的真正的样式信息即可。 在今天的这篇文章中,我们将介绍相关的基本HTML5标签Header,nav和footer。 header标签 在新的标准中header标签定义如下: "A group of introductory or