enumeration enumerating
- 软件开发
- 2023-08-13
- 77
大家好,今天来为大家分享enumeration的一些知识点,和enumerating的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大...
大家好,今天来为大家分享enumeration的一些知识点,和enumerating的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
arraylist和linkedlist的区别
ArrayList和LinkedList
共性:ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只是实现的方式有所不同。
区别:List接口的实现方式不同
ArrayList实现了List接口,以数组的方式来实现的,因此对于快速的随机取得对象的需求,使用ArrayList实现执行效率上会比较好。
LinkedList是采用链表的方式来实现List接口的,因此在进行insert和remove动作时效率要比ArrayList高。适合用来实现Stack(堆栈)与Queue(队列)。
HashTable和HashMap
共性:都实现了Map接口。
区别:
(1)继承的父类不同
Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。
(2)线程安全性不同
Hashtable的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的。
(3)提供contains方法
HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey,因为contains方法容易让人引起误解。
Hashtable则保留了contains,containsValue和containsKey三个方法,其中contains和containsValue功能相同。
(4)key和value是否允许null值
Hashtable中,key和value都不允许出现null值。HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。
(5)两个遍历方式的内部实现上不同
HashMap使用了Iterator;Hashtable使用Iterator,Enumeration两种方式。
(6)hash值不同
哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
(7)内部实现使用的数组初始化和扩容方式不同
HashTable在不指定容量的情况下的默认容量为11,增加的方式是old*2+1;而HashMap为16,Hashtable不要求底层数组的容量一定要为2的整数次幂,而HashMap则要求一定为2的整数次幂。
hashmap和hashtable的区别
hashmap和hashtable的区别
1、继承的父类不同
Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。
2、线程安全性不同
javadoc中关于hashmap的一段描述如下:此实现不是同步的。如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步。
3、是否提供contains方法
HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey,因为contains方法容易让人引起误解。
Hashtable则保留了contains,containsValue和containsKey三个方法,其中contains和containsValue功能相同。
4、key和value是否允许null值
Hashtable中,key和value都不允许出现null值。但是如果在Hashtable中有类似put(null,null)的操作,编译同样可以通过,因为key和value都是Object类型,但运行时会抛出NullPointerException异常,这是JDK的规范规定的。
HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,可能是HashMap中没有该键,也可能使该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。
5、两个遍历方式的内部实现上不同
Hashtable、HashMap都使用了Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式。
6、hash值不同
哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值。
7、内部实现使用的数组初始化和扩容方式不同
HashTable在不指定容量的情况下的默认容量为11,而HashMap为16,Hashtable不要求底层数组的容量一定要为2的整数次幂,而HashMap则要求一定为2的整数次幂。Hashtable扩容时,将容量变为原来的2倍加1,而HashMap扩容时,将容量变为原来的2倍。
HashMap简介
HashMap是在JDK1.2中引入的Map的实现类。HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。
Hashtable简介
Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。
Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。
Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。
如何让essay句子显得简洁有力
1.主动语态与被动语态
英文中的主动语态特点是简洁有力,动作发出者明确,而被动语态特点是较为冗长且有时候看不出动作的发出者是谁(比如Measuresshouldbetakentoaddressthisissue.从这个句子里面我们无法确定应该是谁采取行动)。在Essay写作中,很多地方都要明确指出动作的发出主体(比如实验是谁操作的,数据是谁测量的),且语言要尽可能简洁。因此,Essay写作中应该多使用主动语态。
类似下面的句子:
(1)Considerationofwhethercountriesworkwelloncross-borderissuessuchasimmigrationwasundertakenbyRaul(2007).
(2)Identificationofpoorfood,badhousing,inadequatehygiene,andlargefamiliesasthemajorcausesofpovertywasmadebyJones(2005).
应该改为:
(1)Raul(2007)?considered?whetherornotcountriesworkwelloncross-borderissuessuchasimmigration.
(2)Jones(2005)?identified?poorfood,badhousing,inadequatehygiene,andlargefamiliesasthemajorcausesofpoverty.
那么有没有需要使用被动语态的情况呢?
有。当我们无法明确动作的发出者,或者需要强调动作本身而不是强调动作发出者的时候,就可以使用被动语态。比如:
(1)Upto90%oftheenergyinlightbulbsiswastedintheformofheat.
(2)ThefirsteditionofFreud’searliestwritingsondreamswaspublishedin1899.
第一个句子里面waste这个动作的发出者无法明确(也没必要明确),第二个句子里面谁出版了Freud的作品并不重要,因此也没有必要使用主动语态来说明出版商是谁。
2.比较句
我们知道,在英语比较句中有时候可以省略被比较主体后面的动词,比如:
Onaverage,menaretallerthanwomenare.
可以省略为:
Onaverage,menaretallerthanwomen.
但这种省略有时候会造成歧义,举个例子:
Womenpreferfriendlydoctorsmorethanmendo.
如果我们将do省略的话,会变成:
Womenpreferfriendlydoctorsmorethanmen.
此时句子会产生歧义,因为它可以有两种不同的理解:
Womenpreferfriendlydoctorsmorethanmenpreferfriendlydoctors.女人比男人更喜欢友善的医生。
Womenpreferfriendlydoctorsmorethantheyprefermen.比起喜欢男人,女人更喜欢友善的医生。
为了避免歧义,我们应该保持比较句型形式上的完整。类似这样的句子:
(1)Thefinancedepartmentfocusesonprofitsmorethanthehumanresourcesdepartment.
(2)CountryAfundshigh-techinnovationmorethanCountryB.
应该改为:
(1)Thefinancedepartmentfocusesonprofitsmorethanthehumanresourcesdepartment?does.
(2)CountryAfundshigh-techinnovationmorethanCountryB?does.
3.使用动词而不是名词
英语中动词通常要比名词要简洁,因为名词本身看不出动作,经常需要额外的动词去修饰它。比如要表达“做出贡献”,使用名词形式我们要说makecontributionsto,但如果用动词只需要说contribute,在Essay写作中能使用动词的场合尽量使用动词,以保持文章的简洁。类似下面这样的句子:
(1)EnumerationofthreereasonswhytheEnglishlanguagehasbecomesoimportantwasmadebyThompson(2006).
(2)DiscussionofthechallengesandstrategiesforfacilitationandpromotionofERPwasperformedbySmith(2007).
需要改为:
(1)Thompson(2006)?enumerated?threereasonswhytheEnglishlanguagehasbecomesoimportant.
(2)Smith(2007)?discussed?thechallengesandstrategiesfor?facilitatingandpromotingERP.
4.减少therebe句型以及it的使用
Therebe句型可能是中国学生最熟悉的句型之一,但大部分therebe句型都不够简洁,可以使用其他形式来替换。比如:
Thereisanecessityforasemi-structuredapproachtobechosen.
可以改为更加简洁的版本:
Asemi-structuredapproachmustbechosen.
又比如:
Thereisaneedforimplementationofthepolicyonalargerscalebythepresidentoftheassociation.
可以改为:
Theassociationpresidentmustimplementthepolicyonalargerscale.
对于形式主语it,我们也可以进行精简,比如:
(1)Itisessentialthatthemodelberevised.
(2)Itwasimportantforthegovernmenttointervene.
可以改为:
(1)Themodelmustberevised.
(2)Thegovernmentmustintervene.
5.Misplacedmodifiers
Misplacedmodifiers是指将修饰语放在错误的地方,从而产生歧义的现象。举个例子:
IwastoldthatIwouldbeawardedthescholarshipbymyprofessor.
这句话因为bymyprofessor这一修饰语放置不当而产生了歧义。它可以理解为“我被我的教授告知我会获得奖学金”,也可以理解为“我被告知我的教授会授予我奖学金”。避免歧义的方法是调整bymyprofessor的位置,比如:
IwastoldbymyprofessorthatIwouldbeawardedthescholarship.
类似的例子还有:
AteamledbyDr.CraigSmithfromtheUniversityofHawaiiatManoafoundthecrabsusingaremotelyoperatedsubmersible.
这句话同样有歧义,因为usingaremotelyoperatedsubmersible可以理解为螃蟹发出的动作,也可以理解为研究团队发出的动作。为了避免歧义,句子可以改为:
AteamledbyDr.CraigSmithfromtheUniversityofHawaiiatManoausedaremotelyoperatedsubmersibletofindthecrabs.
6.慎用代名词
我们有时候会用代名词来指代前面提到的名词或是句子成分,但它有个缺点:读者有时候很难确定代名词究竟指代哪一部分。Essay写作要求清晰严谨,因此使用代名词时一定要谨慎,必要时可以对代名词进行替换。比如:
Acasestudyapproachwaschosen;thisallowedacloserobservationofasinglespecimen.
句子中this可能指代acasestudyapproach,也可能指代acasestudyapproachwaschosen这一整句话,为了使句意清晰,我们可以将句子改为:
Acasestudyapproachwaschosentoallowacloserobservationofasinglespecimen.
又比如:
XsubstantiallyaltersY.ThissuggeststhatYcanbemodifiedusingtheproposedmodel.
句子可以改为更清晰的版本:
XsubstantiallyaltersY.?Thisfinding?suggeststhatYcanbemodifiedusingtheproposedmodel.
7.避免使用可能会造成性别歧视的代名词
在使用he,she,his,her,him这类代名词时,应避免出现只偏袒一方情况,举个例子:
Whenapoliticiancampaignsforoffice,hemustspendconsiderablefundstocompetewithhisopponents.
这里代名词只提及到了男性一方,为了避免出现性别歧视,我们可以使用名词和代词的复数形式:
Whenpoliticianscampaignforoffice,?they?mustspendconsiderablefundstocompetewith?their?opponents.
或者将句子中的代名词去掉:
Apolitician?who?campaignsforofficemustspendconsiderablefundstocompetewithopponents.
同时,在使用一些名词的时候也要注意性别问题,比如要表达“人类”,用humankind会比用mankind好一点,因为mankind带有一定的性别色彩,一些人会质疑为什么只有mankind而没有womankind,而使用humankind会显得公平很多。
8.逗号问题
虽然逗号看起来是小问题,但还是有不少人会用错。这里提一个常见的问题:当连词后面的句子不完整时,连词前面不能用逗号。举个例子:
IknewthepriceofIBMstockwouldincreaseafteritenteredthehomecomputermarket,buthadnoideathatthepricewouldskyrocket.
连词but后面的部分hadnoideathatthepricewouldskyrocket不是一个完整的句子,因此but之前不能加逗号。也就是说,上面的写法是错误的。
正确的写法应该是:
IknewthepriceofIBMstockwouldincreaseafteritenteredthehomecomputermarketbuthadnoideathatthepricewouldskyrocket.
另外,如果连词后面的部分是一个完整的句子,则建议在连词前面加逗号,比如:
IknewthepriceofIBMstockwouldincreaseafteritenteredthehomecomputermarket,butIhadnoideathatthepricewouldskyrocket.
不推荐下面这种写法:
IknewthepriceofIBMstockwouldincreaseafteritenteredthehomecomputermarketbutIhadnoideathatthepricewouldskyrocket.
除了上面提到的这几点之外,常见的Essay写作问题还有滥用大词、冗余以及冠词使用错误等。
the four freedoms是什么意思
thefourfreedoms四大自由双语对照词典结果:thefourfreedoms四大自由(富兰克林?德?罗斯福1941年国会演讲中宣布,即:言论和表达自由、信仰自由、不虞匮乏的自由和避免恐惧的自由);例句:OneisremindedofFranklinRoosevelt'senumerationoftheFourFreedoms.
servlet中响应get请求的方法有哪些
Service()方法
在Service()这个方法里面,有servletRequest和servletResponse两个参数。Servlet中的接口中的service(ServletRequestservletRequest,ServletResponseservletResponse)方法用于应答请求。实例代码在文末。
1、原因是每次用户请求都会都会调用service()方法。
2、servletRequest封装了请求信息(通过J2EE的官方文档中能找到全部的方法)。
3、servletResponse封装了响应信息,如果想给用户什么响应,具体可以使用该接口方法实现。
一、Request的具体实现
通过ServletRequest的对象有多种获取请求参数的方式,这里就只拿出最常用的四种方法作为讲解。可以了解一下J2EE的文档里面有哪些方法。
1、String->getParameter(Stringname)
String为返回值,用于获取单个值。
2、String[]->getParameterValues(Stringname)
用于获取多个值
3、Enumeration->getParameterNames()
获取多个name对应的单个值
4、Map->getParameterMap()
获取全部的值,以键值对的方式存在Map中。
二、获取请求URI、请求方式、域名后面的路径、参数
ServletRequest的对象并不能获取这些数据,但是HttpServletRequest的对象就可以获取到,所以需要强转一下对象HttpServletRequesthttpServletRequest=(HttpServletRequest)servletRequest;就可以使用以下的方法了。
1、getRequestURI()如/login
2、getMethod()如post
3、getQueryString()如xxx?userid=123&name=DJun
4、getServletPath()如/login
三、Response的具体实现
Response大家都知道是用于回复用户的请求内容。介绍一下下面两个函数:
1、getWriter()通过PrintWriter的对象将回复的内容打印到页面中
PrintWriterprintWriter=servletResponse.getWriter();
printWriter.println("Hello,World!");
2、setContentType()设置内容类型(Header)
如,
返回一个word给用户下载:servletResponse.setContentType("application/msword");
返回HTML或者是文本类型:servletResponse.setContentType("text/html;charset=UTF-8");
hashmap和hashtable的区别是什么
HashMap和Hashtable都是基于哈希表实现的Map接口的类,它们都存储键值对,但有些区别:
1.线程安全性不同:Hashtable是线程安全的,对其所有操作都是同步的,而HashMap不是线程安全的,因此在多线程中使用HashMap时需要注意线程同步问题。
2.null值的处理方式不同:HashMap允许使用null作为键和值,而Hashtable则不允许,如果使用null会抛出NullPointerException。
3.初始容量和增量的默认值不同:HashMap默认初始容量为16,而Hashtable为11,HashMap的默认增量为当前容量的2倍,Hashtable的默认增量为容量的一半加1。
4.用于迭代的Enumeration和Iterator的不同:Hashtable没有引进Iterator,只能使用Enumeration来遍历其中的元素,而HashMap支持Iterator遍历。
5.在遍历上,HashMap是快速失败的,而HashTable是安全失败的,所以说,如果在多个线程同时进行对Hashtable进行迭代,可能会导致程序不稳定。
综上所述,虽然Hashtable比HashMap更安全,但如果不需要线程安全这个特性,建议使用HashMap,可以获得更快的性能。
文章分享结束,enumeration和enumerating的答案你都知道了吗?欢迎再次光临本站哦!
本文链接:http://www.xinin56.com/ruanjian/8864.html