当前位置: 首页 > news >正文

做公司网站的好处以及优势网站优化助手

做公司网站的好处以及优势,网站优化助手,wordpress大前端dux5.2,wordpress 新建php页面List接口继承了Collection接口,定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。 实际上有两种list:一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的L…

List接口继承了Collection接口,定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。

实际上有两种list:一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是快速随机访问设计的,而是具有更通用的方法。

  • List : 次序是List最重要的特点:它保证维护元素特定的顺序。

  • ArrayList : 由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。

  • LinkedList : 对顺序访问进行了优化,向List中间插入与删除的开销并不大,随机访问则相对较慢。还具有下列方法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

  • Vector:实现一个类似数组一样的表,自动增加容量来容纳你所需的元素。使用下标存储和检索对象就象在一个标准的数组中一样。你也可以用一个迭代器从一个Vector中检索对象Vector是 需要zi料+ 绿色徽【vip1024b】

唯一的同步容器类!!

  • stack:这个类从vector派生而来,并增加了方法实现栈,一种后进先出的存储结构。

List的用法示例:

package collection;

import java.util.*;

public class SetExample {

public static void main(String[] args) {

List linkedList = new LinkedList();

for (int i = 0; i <= 5; i++) {

linkedList.add(“a”+i);

}

System.out.println(linkedList);

linkedList.add(3,“a100”);

System.out.println(linkedList);

linkedList.set(6,“a200”);

System.out.println(linkedList);

System.out.println(linkedList.get(2));

System.out.println(linkedList.indexOf(“a3”));

linkedList.remove(1);

System.out.println(linkedList);

}

}

六、list和set对比


Set子接口:无序,不允许重复,检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

List子接口:有序,可以有重复元素,和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

Set和List具体子类:

Set

|————HashSet:以哈希表的形式存放元素,插入删除速度很快。

List

|————ArrayList:动态数组

|————LinkedList:链表、队列、堆栈。

七、map


1、map接口不是Collection接口的继承。

不重复的键到值的映射。

2、Map.Entry 接口

map的entrySet()方法返回一个实现map.entry接口的对象集合。集合中每个对象都是底层map中一个特定的键值对。

3、HashMap 类和 TreeMap 类

在map中插入、删除和定位元素,HashMap是最好的选择。但如果您要按顺序遍历键,那么TreeMap 会更好。根据集合大小,先把元素添加HashMap,再把这种映射转换成一个用于有序键遍历的TreeMap 可能更快。

为了优化hashmap空间的使用,您可以调优初始容量和负载因子。这个treeMap没有调优选项,因为该树总处于平衡状态。

  • hashtable:实现一个映象,所有的键必须非空。为了能高效的工作,定义键的类必须实现hashcode()方法和equal()方法。这个类时前面Java实现的一个继承,并且通常能在实现映象的其它类中更好地使用。

  • hashmap:实现一个映象,运行存储空对象,而且允许键是空(由于键必须是唯一的,当然只能有一个空)。

  • WeakHashMap:如果有一个键对于一个对象而言不再被引用,键将被舍弃,WeakHashMap在具有大量数据时使用。

  • TreeMap: 实现这样一个映象,对象是按键升序排列的。

4、map的使用示例

以下程序演示了具体map类的使用。该程序对自命令行传递的词进行频率计数。hashmap起初用于数据存储。后来,映射被转换为TreeMap以显示有序的键列列表。

package collection;

import java.util.Collections;

import java.util.HashMap;

import java.util.Map;

import java.util.TreeMap;

public class MapExample {

public static void main(String[] args) {

String[] array = {“a”,“b”,“c”,“d”,“e”};

Map map = new HashMap();

Integer ONE = new Integer(1);

for (int i=0, n=array.length; i<n; i++) {

String key = array[i];

int frequency = i+1;

map.put(key, frequency);

}

System.out.println(map);

Map sortedMap = new TreeMap(map);

System.out.println(sortedMap);

//hashmap的同步

Map map1 = Collections.synchronizedMap(map);

System.out.println(map1);

}

}

5、控制台输出

八、HashMap、Hashtable、ConcurrentHashMap的原理与区别


1、HashTable

  1. 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化

  2. 初始size为11,扩容:newsize = olesize*2+1

  3. 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.length

2、HashMap

(1)HashMap简介

  • 底层数组+链表实现,可以存储null键和null值,线程不安全

  • 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂

  • 扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入

  • 插入元素后才判断该不该扩容,有可能无效扩容(插入后如果扩容,如果没有再次插入,就会产生无效扩容)

  • 当Map中元素总数超过Entry数组的75%,触发扩容操作,为了减少链表长度,元素分配更均匀

  • 计算index方法:index = hash & (tab.length – 1)

(2)HashMap加载因子

  • 哈希冲突:若干Key的哈希值按数组大小取模后,如果落在同一个数组下标上,将组成一条Entry链,对Key的查找需要遍历Entry链上的每个元素执行equals()比较。

  • 加载因子:为了降低哈希冲突的概率,默认当HashMap中的键值对达到数组大小的75%时,即会触发扩容。因此,如果预估容量是100,即需要设定100/0.75=134的数组大小。

  • 空间换时间:如果希望加快Key查找的时间,还可以进一步降低加载因子,加大初始大小,以降低哈希冲突的概率。

(3)HashMap容量

HashMap和Hashtable都是用hash算法来决定其元素的存储,因此HashMap和Hashtable的hash表包含如下属性:

  • 容量(capacity):hash表中桶的数量

  • 初始化容量(initial capacity):创建hash表时桶的数量,HashMap允许在构造器中指定初始化容量

  • 尺寸(size):当前hash表中记录的数量

  • 负载因子(load factor):负载因子等于“size/capacity”。负载因子为0,表示空的hash表,0.5表示半满的散列表,依此类推。轻负载的散列表具有冲突少、适宜插入与查询的特点(但是使用Iterator迭代元素时比较慢)

除此之外,hash表里还有一个“负载极限”,“负载极限”是一个0~1的数值,“负载极限”决定了hash表的最大填满程度。当hash表中的负载因子达到指定的“负载极限”时,hash表会自动成倍地增加容量(桶的数量),并将原有的对象重新分配,放入新的桶内,这称为rehashing。

HashMap和Hashtable的构造器允许指定一个负载极限,HashMap和Hashtable默认的“负载极限”为0.75,这表明当该hash表的3/4已经被填满时,hash表会发生rehashing。

笔者福利

以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

有了这个,面试踩雷?不存在的!

回馈粉丝,诚意满满!!!




,hash表会发生rehashing。

笔者福利

以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

有了这个,面试踩雷?不存在的!

回馈粉丝,诚意满满!!!

[外链图片转存中…(img-GEgc3vXh-1710358195397)]
[外链图片转存中…(img-7u9zz3mh-1710358195398)]
[外链图片转存中…(img-s1kdbJeB-1710358195399)]
[外链图片转存中…(img-6cV4LgY7-1710358195399)]

http://www.yidumall.com/news/20412.html

相关文章:

  • 宝塔做网站可以用什么端口常用的关键词有哪些
  • 织梦做的网站图片路径在哪里口碑营销的缺点
  • 做国外有那些网站比较好杭州优化公司哪家好
  • 去哪里找做网站 的客户seo排名诊断
  • 做网站开发需要的英语水平百家号查询排名数据查询
  • 长春做网站的seo研究协会网
  • 有多少收费网站各大网站收录入口
  • 福州网站建设网站设计网站推广湖人队最新消息
  • 网站弹窗特效seozhun
  • 南阳做网站的软文广告100字
  • 网络网站排名优化百度关键词优化方法
  • 做网站可以用别人的身份证吗百度网站名称
  • wordpress 增加小工具seo优化诊断工具
  • 政府门户网站制度建设情况网上打广告有哪些软件
  • 徐州建站平台如何推广品牌知名度
  • 青岛高端网站开发建站平台哪家好
  • 做网站页面提供的图结构网站搜索优化排名
  • 免费做自己的网站近期重大新闻事件
  • 湖北外贸网站设计制作广告公司招聘
  • 做服装最好的网站正规代运营公司排名
  • 织梦网站怎样上传到ftp辽阳网站seo
  • 外贸公司网站建设费用 如何申请网络营销是学什么
  • 一品威客网兼职正规的关键词优化软件
  • wordpress 添加广告窗口武汉百度seo网站优化
  • 成都网站seo推广sem优化软件哪家好
  • 注册个体可以做网站吗怎样提高百度推广排名
  • 怎么申请网址怎么用企业seo网络营销
  • 在线免费建网站百度网站优化方案
  • 外国一些做环保袋的网站外贸网站谷歌seo
  • 青岛做网站哪家好木卢seo教程