当前位置:首页 > 软件开发 > 正文

enumeration enumerating

enumeration enumerating

大家好,今天来为大家分享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的答案你都知道了吗?欢迎再次光临本站哦!

最新文章