ArrayList和LinkedList的区别
2019独角兽企业重金招聘Python工程师标准>>>
ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。
LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它们将适用于完全不同的工作场景。
LinkedList链表由一系列表项连接而成。一个表项总是包含3个部分:元素内容,前驱表和后驱表。
在下图展示了一个包含3个元素的LinkedList的各个表项间的连接关系。在JDK的实现中,无论LikedList是否为空,链表内部都有一个header表项,它既表示链表的开始,也表示链表的结尾。表项header的后驱表项便是链表中第一个元素,表项header的前驱表项便是链表中最后一个元素
下面以增加和删除元素为例比较ArrayList和LinkedList的不同之处:
1
(1)增加元素到列表尾端:
在ArrayList中增加元素到队列尾端的代码如下:
public boolean add(E e){ensureCapacity(size+1);//确保内部数组有足够的空间elementData[size++]=e;//将元素加入到数组的末尾,完成添加return true;
}
ArrayList中add()方法的性能决定于ensureCapacity()方法。ensureCapacity()的实现如下:
public vod ensureCapacity(int minCapacity){modCount++;int oldCapacity=elementData.length;if(minCapacity>oldCapacity){ //如果数组容量不足,进行扩容Object[] oldData=elementData;int newCapacity=(oldCapacity*3)/2+1; //扩容到原始容量的1.5倍if(newCapacitty<minCapacity) //如果新容量小于最小需要的容量,则使用最小//需要的容量大小newCapacity=minCapacity ; //进行扩容的数组复制elementData=Arrays.copyof(elementData,newCapacity);}
}
可以看到,只要ArrayList的当前容量足够大,add()操作的效率非常高的。只有当ArrayList对容量的需求超出当前数组大小时,才需要进行扩容。扩容的过程中,会进行大量的数组复制操作。而数组复制时,最终将调用System.arraycopy()方法,因此add()操作的效率还是相当高的。
LinkedList 的add()操作实现如下,它也将任意元素增加到队列的尾端:
public boolean add(E e){addBefore(e,header);//将元素增加到header的前面return true;
}
其中addBefore()的方法实现如下:
private Entry<E> addBefore(E e,Entry<E> entry){Entry<E> newEntry = new Entry<E>(e,entry,entry.previous);newEntry.provious.next=newEntry;newEntry.next.previous=newEntry;size++;modCount++;return newEntry;
}
可见,LinkeList由于使用了链表的结构,因此不需要维护容量的大小。从这点上说,它比ArrayList有一定的性能优势,然而,每次的元素增加都需要新建一个Entry对象,并进行更多的赋值操作。在频繁的系统调用中,对性能会产生一定的影响。
1
(2)增加元素到列表任意位置
除了提供元素到List的尾端,List接口还提供了在任意位置插入元素的方法:void add(int index,E element);
由于实现的不同,ArrayList和LinkedList在这个方法上存在一定的性能差异,由于ArrayList是基于数组实现的,而数组是一块连续的内存空间,如果在数组的任意位置插入元素,必然导致在该位置后的所有元素需要重新排列,因此,其效率相对会比较低。
以下代码是ArrayList中的实现:
public void add(int index,E element){if(index>size||index<0)throw new IndexOutOfBoundsException("Index:"+index+",size: "+size);ensureCapacity(size+1);System.arraycopy(elementData,index,elementData,index+1,size-index);elementData[index] = element;size++;
}
可以看到每次插入操作,都会进行一次数组复制。而这个操作在增加元素到List尾端的时候是不存在的,大量的数组重组操作会导致系统性能低下。并且插入元素在List中的位置越是靠前,数组重组的开销也越大。
而LinkedList此时显示了优势:
public void add(int index,E element){addBefore(element,(index==size?header:entry(index)));
}
可见,对LinkedList来说,在List的尾端插入数据与在任意位置插入数据是一样的,不会因为插入的位置靠前而导致插入的方法性能降低。
1
(3)删除任意位置元素
对于元素的删除,List接口提供了在任意位置删除元素的方法:
public E remove(int index);
对ArrayList来说,remove()方法和add()方法是雷同的。在任意位置移除元素后,都要进行数组的重组。ArrayList的实现如下:
public E remove(int index){RangeCheck(index);modCount++;E oldValue=(E) elementData[index];int numMoved=size-index-1;if(numMoved>0)System.arraycopy(elementData,index+1,elementData,index,numMoved);elementData[--size]=null;return oldValue;
}
可以看到,在ArrayList的每一次有效的元素删除操作后,都要进行数组的重组。并且删除的位置越靠前,数组重组时的开销越大。
public E remove(int index){return remove(entry(index));
}
private Entry<E> entry(int index){if(index<0 || index>=size)throw new IndexOutBoundsException("Index:"+index+",size:"+size);Entry<E> e= header;if(index<(size>>1)){//要删除的元素位于前半段for(int i=0;i<=index;i++)e=e.next;}else{for(int i=size;i>index;i--)e=e.previous;}return e;
}
在LinkedList的实现中,首先要通过循环找到要删除的元素。如果要删除的位置处于List的前半段,则从前往后找;若其位置处于后半段,则从后往前找。因此无论要删除较为靠前或者靠后的元素都是非常高效的;但要移除List中间的元素却几乎要遍历完半个List,在List拥有大量元素的情况下,效率很低。
1
(4)容量参数
容量参数是ArrayList和Vector等基于数组的List的特有性能参数。它表示初始化的数组大小。当ArrayList所存储的元素数量超过其已有大小时。它便会进行扩容,数组的扩容会导致整个数组进行一次内存复制。因此合理的数组大小有助于减少数组扩容的次数,从而提高系统性能。
public ArrayList(){this(10);
}
public ArrayList (int initialCapacity){super();if(initialCapacity<0)throw new IllegalArgumentException("Illegal Capacity:"+initialCapacity)this.elementData=new Object[initialCapacity];
}
ArrayList提供了一个可以制定初始数组大小的构造函数:
public ArrayList(int initialCapacity)
现以构造一个拥有100万元素的List为例,当使用默认初始化大小时,其消耗的相对时间为125ms左右,当直接制定数组大小为100万时,构造相同的ArrayList仅相对耗时16ms。
1
(5)遍历列表
遍历列表操作是最常用的列表操作之一,在JDK1.5之后,至少有3中常用的列表遍历方式:forEach操作,迭代器和for循环。
String tmp;
long start=System.currentTimeMills(); //ForEach
for(String s:list){tmp=s;
}
System.out.println("foreach spend:"+(System.currentTimeMills()-start));
start = System.currentTimeMills();
for(Iterator<String> it=list.iterator();it.hasNext();){ tmp=it.next();
}
System.out.println("Iterator spend;"+(System.currentTimeMills()-start));
start=System.currentTimeMills();
int size=;list.size();
for(int i=0;i<size;i++){ tmp=list.get(i);
}
System.out.println("for spend;"+(System.currentTimeMills()-start));
构造一个拥有100万数据的ArrayList和等价的LinkedList,使用以上代码进行测试,可以看到,最简便的ForEach循环并没有很好的性能表现,综合性能不如普通的迭代器,而是用for循环通过随机访问遍历列表时,ArrayList表项很好,但是LinkedList的表现却无法让人接受,甚至没有办法等待程序的结束。这是因为对LinkedList进行随机访问时,总会进行一次列表的遍历操作。性能非常差,应避免使用。
转载于:https://my.oschina.net/u/3569034/blog/1584338
相关文章
- asp定义的数连接串
在ASP中连接数据库一、存取数据库的原理 在ASP中,用来存取数据库的对象统称ADO对象(Active Data Objects),主要含有三种对象:Connection、Recordset和Command,其中Connection负责打开或连接数据库ÿ…...
2023/4/16 8:00:36 - 用asp编写验证码
<div align"center"><font size"2">校验码 <%for i1 to 4Randomizernumint(rnd()*35)1str"0123456789abcdefghijkLmnopqrstuvwxyz"selectstrselectstr&mid(str,rnum,1)nextfor i1 to 4 imgnamemid(selectstr,i,1) %><…...
2023/4/16 8:00:35 - 在asp编程中trim函数的详述及漏洞破解与防护
在asp编程中,我们常常使用trim(rtrim,ltrim)函数去掉一些数据的开头和结尾的空格,笔者最近写了一个asp聊天室,有下面的一段代码: <% dim name,title nametrim(request.form("name")) passwordtrim(request.f…...
2023/4/16 8:00:34 - c#中DataList的使用
DataList控件的应用中。可以处理用户点击事件。在aspx代码中:<asp:DataList id"datalist2".......加入OnItemCommand "DataList_ItemCommand"然后加入下面的C#代码:void BindList()DataList2用{string commstr "select * …...
2023/4/16 8:00:33 - asp中建立搜索的不同方法
searchfunction:<meta http-equiv"Content-Type" content"text/html; charsetgb2312"><%sub searchinfo() 如果是新查询if request("search")"1" thensession("sessionok")""end if 如果不…...
2023/4/16 8:00:31 - asp+存储过程的使用
在ASP中调用存储过程 <!-- 必须加载adovbs.inc文件,否则将出错 --><!--#include file"adovbs.inc"--><%dim objCnndim objCmddim Rsconst o_id112 -----建立Connection对象----------set objCnnServer.CreateObject("Adodb.connect…...
2023/4/16 8:00:30 - ASP六大对象介绍
ASP六大对象介绍 一、Application对象 Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。Application的属性: 方法如下: Application对象没有内置的属性&#…...
2023/4/16 8:00:29 - c#中在DataGrid里创建一个弹出式窗口------可实现源代码
在DataGrid中创建一个弹出式窗口 这篇文章来自DotNetJunkie的提议。他最初写信要求我们提供一个关于如何创建在DataGrid 中使用HyperLinkColumn的例子,可以在用户点击这一列后打开一个新窗口,显示出此列的详细内容。在此之前我们曾经通过email回答他们&a…...
2023/4/16 8:00:28 - 加强对的asp学习,唉,,,没办法,为了吃饭呀!!
ASP教程涉及到Len()、Fix()和Mid()三个函数,重点是Mid()函数的用法。这3个函数的用法请见VBScript函数手册,在此再简单介绍一下:Len(),返回字符串中的字符数目,例如Len("webshu")6;Fix()…...
2023/4/16 8:00:25 - 加强asp学习1
读取记录 今天要学习的内容有一点枯燥,但是很重要。在这里大家不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。 下面开门见山,看两句话: <% set con…...
2023/4/16 8:00:24 - 加强asp学习2
数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。今天我们先学习写入记录。 先建立一个表单: <form name"form1" method"post" action"example5.asp"> name <in…...
2023/4/16 8:00:23 - 加强asp学习3
开门见山,大家直接看程序。 exec"delete * from guestbook where id"&request.form("id") 上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示id,我们前面建立 数据库的时候用的是系统给我们的主键&…...
2023/4/16 8:00:22 - asp上传文件或图片
当在一个form里需要执行resquest.conntent时不能与上传图片的功能同时放在同一个form里,最有效的解决方案是使用两个form,调用两个action,这样不容易出现二进制与content组建冲突。实现代码如下:<form method"post" action"submit4.as…...
2023/4/16 8:00:21 - 将人民币的数字转化成大写表示 [asp]
<%call Money(1605893.21) function Money(thenumber)dim Money,i,String1,String2,length,checkp定义变量dim one(),onestr()定义数组 String1 "零壹贰叁肆伍陆柒捌玖"String2 "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫" checkpinstr(thenumber,".…...
2023/4/16 8:00:20 - 字符转换与反转换函数
今天在逛论坛时发现很多人都在问有关在textarea中输入的回车在html中不能显示的问题,可能这些朋友还不知道在文本中和html中显示回车的方式是不同的,因此我找了以下两个函数供大家参考: 1.HTMLEncode函数:除了server.htmlencode的…...
2023/4/16 8:00:19 - 在ASP.NET中动态创建柱状图和饼图
在应用程序开发中,我们会经常遇到把从数据源动态取回的数据用统计图表现出来,在Microsoft.NETFramework出现之前,我们采取的方法主要是编写组件来完成这一任务。现在,利用Microsoft.NETFramework提供的丰富的GDI类和对象可以很轻松…...
2023/4/16 8:00:16 - 数据库备份与恢复的存储过程
if exists(select * from sysobjectswhere namepr_backup_db and xtypep)begindrop proc pr_backup_dbend go /*备份数据库*/create proc pr_backup_dbflag varchar(10) out,backup_db_name varchar(128),filename varchar(1000) --路径+文件名字asdeclare sql nv…...
2023/4/16 8:00:14 - 数据库的备份与恢复的存储过程
if exists (select * from dbo.sysobjects where id object_id(N[dbo].[p_backupdb]) and OBJECTPROPERTY(id, NIsProcedure) 1)drop procedure [dbo].[p_backupdb]GO/*--备份数据库的通用存储过程/*--调用示例--备份当前数据库exec p_backupdb bkpathc:/,bkfname/DBNAME/_…...
2023/4/16 8:00:13 - fso对象完成对硬盘文件的处理
whichfileServer.MapPath("abandonship.txt") 得到文件名Set fso CreateObject("Scripting.FileSystemObject") 定义fso对象Set f1 fso.CreateTextFile(whichfile,true)f1.Write ("This is a test.My Name is abandonship.")f1.CloseSet f2 f…...
2023/4/16 8:00:12 - 页面计数器改进版,刷新页面无效
首先呢,先要做几个张图,这里用的是比较本的方法,呵呵没有用body.fix这文件,所以需要调用数字图的方法了,在这里就不多说这个了,建一个文件夹名为counter并将0-9这是个数字图放到里面,另在里面创建一个记事本…...
2023/4/16 8:00:11 - asp常用所有函数
1.函数array() 功能:创建一个数组变量 格式:array(list) 参数:list 为数组变量中的每个数值列,中间用逗号间隔 例子: <% i array ("1","2","3") %> 结果: i 被赋予为数组 2.函数Cint() 功能:将一表达式/其它类型…...
2023/4/16 8:00:10 - VB.NET上传文件
利用VB.NET向服务器上传文件 文件上传技术是一个很实用的技术,有着很广泛的应用,在ASP.NET自身的前一个版本ASP里实现这个功能,就必须使用第三方的组件或者自己开发组件了,现在,用ASP.NET实现起来就简单得多了…...
2023/4/16 8:00:09 - 使用当前日期做为流水号,采用函数
<% 将当前的日期和时间转为流水号 function makefilename(fname) fname now() fname replace(fname,"-","") fname replace(fname," ","") fname replace(fname,":","") fname replace(fname,"PM&q…...
2023/4/16 8:00:08 - 在ASP.NET中动态创建柱状图和饼图
在应用程序开发中,我们会经常遇到把从数据源动态取回的数据用统计图表现出来,在Microsoft.NETFramework出现之前,我们采取的方法主要是编写组件来完成这一任务。现在,利用Microsoft.NETFramework提供的丰富的GDI类和对象可以很轻松…...
2023/4/16 8:00:07 - asp.net常用函数
Abs(number)取得数值的绝对值。Asc(String)取得字符串表达式的第一个字符ASCII码。Atn(number)取得一个角度的反正切值。CallByName(object,procname,usecalltype,[args()])执行一个对象的方法、设定或传回对象的属性。CBool(expression)转换表达式为Boolean型态。CByte(expres…...
2023/4/16 8:00:05 - PostgreSQL7.0手册-教程 -69. SQL-----(转载)
SQL 已经成为了最流行的关系查询语言。SQL”的名称是Structured Query Language(结构化查询语言)的缩写。在 1974 年,Donald Chamberlin 和其他人在 IBM 的研究所定义了语言 SEQUEL (Structured English Query Lang…...
2023/4/16 8:00:04 - asp使用组件在线发邮件的多种方法
一、jmail.smtpmail的核心代码: <% Set jmail Server.CreateObject("JMAIL.SMTPMail") 创建一个JMAIL对象 jmail.silent true JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE jmail.logging true 启用使用日志 jmail.Charset "GB2312" 邮…...
2023/4/16 8:00:03 - asp动态生成excel文件
<!-- #include virtual"inc/conn.asp" --><%##################实现将动态生成excel表格,并将内容一并写入#############################################Code CreateBy guofeng#####################################%><HTML><HEA…...
2023/4/16 8:00:02 - 禁止右键访问----破解与攻防
要禁止访问者查看网页源代码,我们首先要了解一下查看源代码的方式(以IE 5.0为例)。一是右键菜单方式; 二是窗口菜单栏查看方式,即选择"查看"*"源文件"方式。要彻底禁止访问者查看网页源代码,就必须屏蔽这2种查看源代码的…...
2023/4/16 8:00:01 - 使用ABCUpload4.XForm组件上传文件
#################使用ABCUpload4.XForm组件上传文件########################################Code CreateBy guofeng#########################Response.Expires -10000Server.ScriptTimeOut 300Set theForm Server.CreateObject("ABCUpload4.XForm")theForm.Ov…...
2023/4/16 7:59:59
最新文章
- asp定义的数连接串
在ASP中连接数据库一、存取数据库的原理 在ASP中,用来存取数据库的对象统称ADO对象(Active Data Objects),主要含有三种对象:Connection、Recordset和Command,其中Connection负责打开或连接数据库ÿ…...
2023/4/16 8:00:36 - 用asp编写验证码
<div align"center"><font size"2">校验码 <%for i1 to 4Randomizernumint(rnd()*35)1str"0123456789abcdefghijkLmnopqrstuvwxyz"selectstrselectstr&mid(str,rnum,1)nextfor i1 to 4 imgnamemid(selectstr,i,1) %><…...
2023/4/16 8:00:35 - 在asp编程中trim函数的详述及漏洞破解与防护
在asp编程中,我们常常使用trim(rtrim,ltrim)函数去掉一些数据的开头和结尾的空格,笔者最近写了一个asp聊天室,有下面的一段代码: <% dim name,title nametrim(request.form("name")) passwordtrim(request.f…...
2023/4/16 8:00:34 - c#中DataList的使用
DataList控件的应用中。可以处理用户点击事件。在aspx代码中:<asp:DataList id"datalist2".......加入OnItemCommand "DataList_ItemCommand"然后加入下面的C#代码:void BindList()DataList2用{string commstr "select * …...
2023/4/16 8:00:33 - asp中建立搜索的不同方法
searchfunction:<meta http-equiv"Content-Type" content"text/html; charsetgb2312"><%sub searchinfo() 如果是新查询if request("search")"1" thensession("sessionok")""end if 如果不…...
2023/4/16 8:00:31 - asp+存储过程的使用
在ASP中调用存储过程 <!-- 必须加载adovbs.inc文件,否则将出错 --><!--#include file"adovbs.inc"--><%dim objCnndim objCmddim Rsconst o_id112 -----建立Connection对象----------set objCnnServer.CreateObject("Adodb.connect…...
2023/4/16 8:00:30 - ASP六大对象介绍
ASP六大对象介绍 一、Application对象 Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。Application的属性: 方法如下: Application对象没有内置的属性&#…...
2023/4/16 8:00:29 - c#中在DataGrid里创建一个弹出式窗口------可实现源代码
在DataGrid中创建一个弹出式窗口 这篇文章来自DotNetJunkie的提议。他最初写信要求我们提供一个关于如何创建在DataGrid 中使用HyperLinkColumn的例子,可以在用户点击这一列后打开一个新窗口,显示出此列的详细内容。在此之前我们曾经通过email回答他们&a…...
2023/4/16 8:00:28 - 加强对的asp学习,唉,,,没办法,为了吃饭呀!!
ASP教程涉及到Len()、Fix()和Mid()三个函数,重点是Mid()函数的用法。这3个函数的用法请见VBScript函数手册,在此再简单介绍一下:Len(),返回字符串中的字符数目,例如Len("webshu")6;Fix()…...
2023/4/16 8:00:25 - 加强asp学习1
读取记录 今天要学习的内容有一点枯燥,但是很重要。在这里大家不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。 下面开门见山,看两句话: <% set con…...
2023/4/16 8:00:24 - 加强asp学习2
数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。今天我们先学习写入记录。 先建立一个表单: <form name"form1" method"post" action"example5.asp"> name <in…...
2023/4/16 8:00:23 - 加强asp学习3
开门见山,大家直接看程序。 exec"delete * from guestbook where id"&request.form("id") 上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示id,我们前面建立 数据库的时候用的是系统给我们的主键&…...
2023/4/16 8:00:22 - asp上传文件或图片
当在一个form里需要执行resquest.conntent时不能与上传图片的功能同时放在同一个form里,最有效的解决方案是使用两个form,调用两个action,这样不容易出现二进制与content组建冲突。实现代码如下:<form method"post" action"submit4.as…...
2023/4/16 8:00:21 - 将人民币的数字转化成大写表示 [asp]
<%call Money(1605893.21) function Money(thenumber)dim Money,i,String1,String2,length,checkp定义变量dim one(),onestr()定义数组 String1 "零壹贰叁肆伍陆柒捌玖"String2 "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫" checkpinstr(thenumber,".…...
2023/4/16 8:00:20 - 字符转换与反转换函数
今天在逛论坛时发现很多人都在问有关在textarea中输入的回车在html中不能显示的问题,可能这些朋友还不知道在文本中和html中显示回车的方式是不同的,因此我找了以下两个函数供大家参考: 1.HTMLEncode函数:除了server.htmlencode的…...
2023/4/16 8:00:19 - 在ASP.NET中动态创建柱状图和饼图
在应用程序开发中,我们会经常遇到把从数据源动态取回的数据用统计图表现出来,在Microsoft.NETFramework出现之前,我们采取的方法主要是编写组件来完成这一任务。现在,利用Microsoft.NETFramework提供的丰富的GDI类和对象可以很轻松…...
2023/4/16 8:00:16 - 数据库备份与恢复的存储过程
if exists(select * from sysobjectswhere namepr_backup_db and xtypep)begindrop proc pr_backup_dbend go /*备份数据库*/create proc pr_backup_dbflag varchar(10) out,backup_db_name varchar(128),filename varchar(1000) --路径+文件名字asdeclare sql nv…...
2023/4/16 8:00:14 - 数据库的备份与恢复的存储过程
if exists (select * from dbo.sysobjects where id object_id(N[dbo].[p_backupdb]) and OBJECTPROPERTY(id, NIsProcedure) 1)drop procedure [dbo].[p_backupdb]GO/*--备份数据库的通用存储过程/*--调用示例--备份当前数据库exec p_backupdb bkpathc:/,bkfname/DBNAME/_…...
2023/4/16 8:00:13 - fso对象完成对硬盘文件的处理
whichfileServer.MapPath("abandonship.txt") 得到文件名Set fso CreateObject("Scripting.FileSystemObject") 定义fso对象Set f1 fso.CreateTextFile(whichfile,true)f1.Write ("This is a test.My Name is abandonship.")f1.CloseSet f2 f…...
2023/4/16 8:00:12 - 页面计数器改进版,刷新页面无效
首先呢,先要做几个张图,这里用的是比较本的方法,呵呵没有用body.fix这文件,所以需要调用数字图的方法了,在这里就不多说这个了,建一个文件夹名为counter并将0-9这是个数字图放到里面,另在里面创建一个记事本…...
2023/4/16 8:00:11 - asp常用所有函数
1.函数array() 功能:创建一个数组变量 格式:array(list) 参数:list 为数组变量中的每个数值列,中间用逗号间隔 例子: <% i array ("1","2","3") %> 结果: i 被赋予为数组 2.函数Cint() 功能:将一表达式/其它类型…...
2023/4/16 8:00:10 - VB.NET上传文件
利用VB.NET向服务器上传文件 文件上传技术是一个很实用的技术,有着很广泛的应用,在ASP.NET自身的前一个版本ASP里实现这个功能,就必须使用第三方的组件或者自己开发组件了,现在,用ASP.NET实现起来就简单得多了…...
2023/4/16 8:00:09 - 使用当前日期做为流水号,采用函数
<% 将当前的日期和时间转为流水号 function makefilename(fname) fname now() fname replace(fname,"-","") fname replace(fname," ","") fname replace(fname,":","") fname replace(fname,"PM&q…...
2023/4/16 8:00:08 - 在ASP.NET中动态创建柱状图和饼图
在应用程序开发中,我们会经常遇到把从数据源动态取回的数据用统计图表现出来,在Microsoft.NETFramework出现之前,我们采取的方法主要是编写组件来完成这一任务。现在,利用Microsoft.NETFramework提供的丰富的GDI类和对象可以很轻松…...
2023/4/16 8:00:07 - asp.net常用函数
Abs(number)取得数值的绝对值。Asc(String)取得字符串表达式的第一个字符ASCII码。Atn(number)取得一个角度的反正切值。CallByName(object,procname,usecalltype,[args()])执行一个对象的方法、设定或传回对象的属性。CBool(expression)转换表达式为Boolean型态。CByte(expres…...
2023/4/16 8:00:05 - PostgreSQL7.0手册-教程 -69. SQL-----(转载)
SQL 已经成为了最流行的关系查询语言。SQL”的名称是Structured Query Language(结构化查询语言)的缩写。在 1974 年,Donald Chamberlin 和其他人在 IBM 的研究所定义了语言 SEQUEL (Structured English Query Lang…...
2023/4/16 8:00:04 - asp使用组件在线发邮件的多种方法
一、jmail.smtpmail的核心代码: <% Set jmail Server.CreateObject("JMAIL.SMTPMail") 创建一个JMAIL对象 jmail.silent true JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE jmail.logging true 启用使用日志 jmail.Charset "GB2312" 邮…...
2023/4/16 8:00:03 - asp动态生成excel文件
<!-- #include virtual"inc/conn.asp" --><%##################实现将动态生成excel表格,并将内容一并写入#############################################Code CreateBy guofeng#####################################%><HTML><HEA…...
2023/4/16 8:00:02 - 禁止右键访问----破解与攻防
要禁止访问者查看网页源代码,我们首先要了解一下查看源代码的方式(以IE 5.0为例)。一是右键菜单方式; 二是窗口菜单栏查看方式,即选择"查看"*"源文件"方式。要彻底禁止访问者查看网页源代码,就必须屏蔽这2种查看源代码的…...
2023/4/16 8:00:01 - 使用ABCUpload4.XForm组件上传文件
#################使用ABCUpload4.XForm组件上传文件########################################Code CreateBy guofeng#########################Response.Expires -10000Server.ScriptTimeOut 300Set theForm Server.CreateObject("ABCUpload4.XForm")theForm.Ov…...
2023/4/16 7:59:59 - 【ChatGPT】从零开始构建基于ChatGPT的嵌入式(Embedding) 本地(Local) 智能客服问答机器人模型
目录 方案流程 1. Embeddings 介绍 术语:微调 vs 嵌入 一句话理解便是:embedding model 可以将文本转换为固定长度的连续向量。 架构流程图 3、Qdrant云数据库的搭建 3.1、初识Qdrant 3.2、创建云数据库 3.3、通过curl 接口访问 4、写入测试数…...
2023/5/28 17:16:05 - 【ChatGPT】在20分钟内使用 LangChain + Ray构建自托管问答服务
This is part 3 of a blog series. In this blog, we’ll show you how to build an LLM question and answering service. In future parts, we will optimize the code and measure performance: cost, latency and throughput. 这是博客系列的第 3 部分。在本博客中,我们将…...
2023/5/28 15:14:53 - 【ChatGPT】Turbocharge LangChain: guide to 20x faster embedding | LangChain: 嵌入速度提高 20 倍的指南
目录 Why do I need to parallelize this?为什么我需要并行化它? Stages of our Data Pipeline 数据管道的各个阶段 Execution...
2023/5/28 15:06:52 - 最新ChatGPT GPT-4 相似匹配Embedding技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(一)
目录 前言最新ChatGPT GPT-4 相似匹配Embedding技术详解1. 何为Embedding2. 相关API2.1 LMAS Embedding API2.2 ChatGPT Style 3. Embedding应用3.1 QA3.2 聚类3.3 推荐 相关文献 参考资料其它资料下载 前言 如果您想提高ChatGPT中文本处理的效率和精度,那么Embedd…...
2023/5/28 12:45:09 - ChatGPT的access_token获取(最新!!!)
ChatGPT的access_token获取(最新!!!) 序言 最近在搞移动应用开发,心血来潮写了个chatGPT的app,但是接口只能用官网提供的,我自己的号没有免费额度,朋友的号也就5$的额度…...
2023/5/28 12:19:58 - 【ChatGPT】ChatGPT 在智能客服产品如何落地?
目录 简介 智能客服产品的典型特征 人力密集: 数据密集: 流程可定义:...
2023/5/28 12:15:11 - 【ChatGPT】ChatGPT使用指南——句词分类
目录 ChatGPT使用指南——句词分类 1. NLU基础 1.1 句子级别的分类 1.2 Token级别的分类 2. 相关API...
2023/5/28 11:56:24 - 【ChatGPT】技术原理:ChatGPT怎么工作?
目录 简介:ChatGPT的工作原理概述 Transformer 架构原理...
2023/5/28 10:39:46 - 【ChatGPT】ChatGPT基础科普——知其一点所以然
目录 ChatGPT基础科普——知其一点所以然 语言的本质 从图灵测试到ChatGPT 1. LM 2. Transformer 3. GPT...
2023/5/28 10:09:26 - ChatGPT使用指南——相似匹配
目录 ChatGPT使用指南——相似匹配 1. 何为Embedding 2. 相关API 2.1 LMAS Embedding API 2.2 ChatGPT Style 3. Embedding应用...
2023/5/28 8:55:00 - 【ChatGPT】使用 LangChain 和 Ray 实现 100 行代码构建 LLM 开源搜索引擎【1】
目录 Introduction Building the index 构建索引 Accelerating indexing using Ray 使用 Ray 加速索引编制 Serving Conclusion...
2023/5/28 8:53:34 - 【ChatGPT】ChatGPT使用指南——文本生成
目录 ChatGPT使用指南——文本生成 1 引言 2 文本摘要任务 2.1 什么是文本摘要? 2.2 常见的文本摘要技术 2.3 基于OpenAI接口的文本摘要实验 3 文本纠错任务 3.1 什么是文本纠错? 3.2 常见的文本纠错技术 3.3 基于OpenAI接口的文本纠错实验 4…...
2023/5/28 8:24:05 - ChatGPT商业应用——LLM是星辰大海
目录 ChatGPT商业应用——LLM是星辰大海 1. 研究背景 1.1 研究背景 1.2 研究方法...
2023/5/28 7:59:04 - 国内可直接访问ChatGPT体验站,已稳定2个月 (域名被拦截解决方案)
新体验地址:https://zizhu888.cn/chatgpt/index.html ChatGPT体验站3月初上线,上线后,PV最高时3000,UV2000,付费用户有小300个 上线后,前前后后遇到了不少坑爹问题,下面是最近PV访问曲线图&am…...
2023/5/28 7:33:09 - AIGC——使用Cursor对比直接使用chatGPT有哪些技巧
Cursor对比直接使用chatGPT有哪些优势 1. 聊聊it团队经常面临的问题2. 试想一些AI辅助的应用场景3. 看回现实可用的工具及其使用3.1 加载文件作为对话上下文3.2 源码工程辅助阅读3.3 批量文件式输入口3.4 规范核查工具 4 通用思路4.1 提供解决方案思路4.2 借助chatGPT构建全流程…...
2023/5/28 4:27:19 - ChatGPT中文版Prompt提示工程超详细指南《提示工程高级技巧与技术》Github最新破万星项目Meta AI前工程师解密百万年薪提示工程师GPT-4模型优化利器(二)不定期更新
提示工程高级技巧与技术 前言Introduction 导言零样本提示少样本提示少样本提示的限制 Chain-of-Thought Prompting 链式思考(CoT)提示零样本COT提示 Zero-shot COT 自我一致性生成知识提示自动提示工程师(APE)Active-Prompt方向性…...
2023/5/28 0:42:10 - 【ChatGPT】ChatGPT使用指南——文本推理
目录 ChatGPT使用指南——文本推理 1. 什么是推理(Reasoning)? 2. 导入ChatGPT 3. 测试ChatGPT的推理能力...
2023/5/27 23:40:23 - ChatGPT免费使用的方法有哪些?
目录 一、ChatGpt是什么? 二、ChatGPT国内免费使用的方法: 第一点:电脑端 第二点:手机端 三、结语: 一、ChatGpt是什么? ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语…...
2023/5/27 23:37:06 - 用ChatGPT辅助处理Excel
在日常工作中,我们经常需要处理大量的Excel表格,而在处理Excel表格时,常常会遇到重复、冗余、不清晰的数据等问题,导致我们耗费大量的时间和精力。 在这种情况下,现代技术的应用提供了更加高效的解决方案,…...
2023/5/27 18:32:31 - Pycharm安装ChatGPT插件
文章目录 前言一、安装ChatGPT插件二、使用步骤1.打开NexChatGPT2.发送请求 总结 前言 通过安装ChatGPT插件,您可以在PyCharm中更轻松、高效地使用ChatGPT模型进行开发,从而提高您的工作效率和准确性。 一、安装ChatGPT插件 打开PyCharm,单…...
2023/5/27 17:28:47 - 它来了!ios版ChatGPT
ChatGPT 的 iOS 版终于来了,不过目前只支持 iOS 美丽国区,你需要使用美丽国区账号才能下载使用。 目录 前提使用总结 前提 一部苹果手机一个美丽国苹果账号一个可以正常访问ChatGPT网页版的网络环境一个ChatGPT账号 使用 登录准备好的美丽国苹果账号。…...
2023/5/27 10:28:02 - 好用的IntelliJ IDEA ChatGPT插件:NexChatGPT
随着ChatGPT的爆火,ChatGPT给我们的生产生活带来一定的影响,ChatGPT相关的工具插件潮水般的涌现。ChatGPT对IT的影响也不小,尤其是自动化编程,今天介绍几款IntelliJ IDEA中ChatGPT插件。 一、NexChatGPT NexChatGPT是一款开箱即…...
2023/5/27 0:48:49 - 2023小狐狸ChatGPT源码1.9小程序 带绘画 带分销流量主系统智能客服AI源码+教程
2023全开源ChatGPT微信小程序,狐狸版本1.9,5.12已更新,增加绘画功能,带流量主带付费购买次数,可邀请好友获得问答次数 看广告获得问答次数 付费购买获得问答次数 狐狸版号1.9(最 新版)…...
2023/5/26 17:51:14 - 【国内chatgpt使用方法合集】(5月26日已更新)
写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正࿰…...
2023/5/26 17:44:47 - 【ChatGPT】GPT-5 下一代:即将到来的7种能力将改变人工智能和技术的未来 | OpenAI
GPT-5 下一代:即将到来的7种能力将改变人工智能和技术的未来 | OpenAI 文章目录 GPT-5 下一代:即将到来的7种能力将改变人工智能和技术的未来 | OpenAI第一:扩展多模式理解。第二:交互式多媒体。第三:为具备一般能力的机器人提供动力。第四:自主人工智能模型开发。第五:…...
2023/5/26 11:55:09 - 玩转ChatGPT:论文辅助写作(附Claude测评)
一、写在前面 嘿!嘿!嘿!大家好,今天我们来聊一下使用GPT们进行论文辅助写作。不过,我要先交代一下,GPT的使用门槛比较高,不少童鞋都用不上。所以,我极力推荐一个平替产品——Claude…...
2023/5/26 11:26:08 - [持续更新]使用chatgpt的几种方法~
1. monica 使用edge浏览器或者chrome浏览器,直接在官网下载即可,网址直通: bing: https://www.microsoft.com/zh-cn/edge/download?formMA13FJ google: Google Chrome 网络浏览器 备注:你需要先搭上梯子哈 安装打…...
2023/5/26 10:39:41 - 苹果手机爽了!一招搞定ChatGPT Plus,超级稳!
大家好,我是五竹。 昨天用苹果手机尝试了一下,借助App Store(苹果应用商店)升级 Plus,成功了!一共升级了三个号!有两个一气呵成,轻松搞定。最后一个可能触发风控了,但第…...
2023/5/26 9:58:09 - ChatGPT账号注册,为什么总是提示Access Denied you do not have acces
问题:提示Access denied 无法登录登录的时候,提示Access denied,You do not have access to chat.openai.com.原因登录出现这个界面,说明你的IP被OpenAI拉黑了,OpenAI对比较频繁访问的云主机商屏蔽了相关的IP出口段,所…...
2023/5/26 9:00:56 - ChatGPT 的 AskYourPDF 插件所需链接如何获取?
一、背景 目前 ChatGPT 主要有两款 PDF 对话插件,一个是 AskYourPDF 一个是 ChatWithPDF(需 ChatGPT Plus),他们都可以实现给一个公共的PDF 链接,然后进行持续对话,对读论文,阅读 PDF 格式的文…...
2023/5/26 8:27:01