今天给各位分享联想s2005的知识,其中也会对华为ascend p1 s进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文导读目录:
javalist(java中List与Set有什么区别
java中List与Set有什么区别
Java的集合类都位于java.util包中,Java集合中存放的是对象的引用,而非对象本身。Java集合主要分为三种类型:a.Set(集:集合中的对象不按特定方式排序,并且没有重复对象。它的有些实现类能对集合中的对象按特定方式排序。b.List(列表:集合中的对象按索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象。c.Map(映射:集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。它的有些实现类能对集合中的键对象进行排序。SetList和Map统称为Java集合联想s2005(华为ascend p1 s)。.Set(集)Set集合中的对象不按特定方式排序,并且没有重复对象。Set接口主要有两个实现类HashSet和TreeSet。HashSet类按照哈希算法来存取集合中的对象,存取速度比较快。HashSet类还有一个子类LinkedHashSet类,它不仅实现了哈希算法,而且实现了链表数据结构。TreeSet类实现了SortedSet接口,具有排序功能。Set的add()方法判断对象是否已经存在于集合中的判断流程:booleanisExists=false;Iteratorit=set.iterator();while(it.hasNext()){Objectobject=it.next();if(newObject.equals(oldObject)){isExists=true;break;}}.HashSet类当HashSet向集合中加入一个对象时,会调用对象的hashCode()方法获得哈希码,然后根据这个哈希码进一步计算出对象在集合中的存放位置。当Object变量和object变量实际上引用了同一个对象,那么object和object的哈希码肯定相同。为了保证HashSet能正常工作,要求当两个对象用equals()方法比较的结果为相等时,它们的哈希码也相等。即:customer.hashCode()==customer.hashCode();如:对应于Customer类的以下重写后的equals()方法:publicbooleanequals(Objecto){if(this==o)returntrue;if(!oinstanceofCustomer)returnfalse;finalCustomerother=(Customer)o;if(this.name.equals(other.getName())&&this.age==other.getAge())returntrue;elsereturnfalse;}为了保证HashSet正常工作,如果Customer类覆盖了equals()方法,也应该覆盖hashCode()方法,并且保证两个相等的Customer对象的哈希码也一样。publicinthashCode(){intresult;result=(name==null?:name.hashCode());result=*result+(age==null?:age.hashCode());returnresult;}.TreeSet类TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。TreeSet支持两种排序方式:自然排序和客户化排序,在默认情况下TreeSet采用自然排序方式。a.自然排序在JDK中,有一部分类实现了parable接口,如IntegerDouble和String等。parable接口有一个pareTo(Objecto)方法,它返回整数类型。对于表达式x.pareTo(y),如果返回值为,表示x和y相等,如果返回值大于,表示x大于y,如果返回值小于,表示x小于y。TreeSet调用对象的pareTo()方法比较集合中对象的大小,然后进行升序排列,这种排序方式称为自然排序。以下列出了JDK中实现了parable接口的一些类的排序方式类排序BigDecimalBigIntegerByteDoubleFloatIntegerLongShort按数字大小排序Character按字符的Unicode值的数字大小排序String按字符串中字符的Unicode值排序使用自然排序时,只能向TreeSet集合中加入同类型的对象,并且这些对象的类必须实现了parable接口,否则会在第二次调用TreeSet的add()方法时,会抛出ClassCastException异常。例如:以下是Customer类的pareTo()方法的一种实现方式:publicintpareTo(Objecto){Customerother=(Customer)o;//先按照name属性排序if(this.name.pareTo(other.getName())》)return;if(this.name.pareTo(other.getName())《)return-;//再按照age属性排序if(this.age》other.getAge())return;if(this.age《other.getAge())return-;return;}为了保证TreeSet能正确地排序,要求Customer类的pareTo()方法与equals()方法按相同的规则比较两个Customer对象是否相等。因此在Customer类的equa ls()方法中应该采用相同的比较规则:publicbooleanequals(Objecto){if(this==o)returntrue;if(!(oinstanceofCustomer))returnfalse;finalCustomerother=(Customer)o;if(this.name.equals(other.getName())&&this.age==other.getAge()){returntrue;}else{returnfalse;}}值得注意的是,对于TreeSet中已经存在的Customer对象,如果修改了它们的属性,TreeSet不会对集合进行重新排序。在实际域模型中,实体类的属性可以被更新,因此不适合通过TreeSet来排序。最适合于排序的是不可变类。b.客户化排序除了自然排序,TreeSet还支持客户化排序。java.util.parator接口用于指定具体的排序方式,它有个pare(Objectobject,Objectobject)方法,用于比较两个对象的大小。当表达式pare(x,y)的值大于,表示x大于y;当pare(x,y)的值小于,表示x小于y;当pare(x,y)的值等于,表示x等于y。例如:如果希望TreeSet仅按照Customer对象的name属性进行降序排列,可以创建一个实现parator接口的类Customerparator:publilassCustomerparatorimplementsparator{publicintpare(Objecto,Objecto){Customerc=(Customer)o;Customerc=(Customer)o;if(c.getName().pareTo(c.getName())》)return-;if(c.getName().pareTo(c.getName())《)return;return;}}接下来在构造TreeSet的实例时,调用它的TreeSet(paratorparator)构造方法:Setset=newTreeSet(newCustomerparator());.向Set中加入持久化类的对象例如两个Session实例从数据库加载相同的Order对象,然后往HashSet集合里存放,在默认情况下,Order类的equals()方法比较两个Orer对象的内存地址是否相同,因此order.equals(order)==false,所以order和order游离对象都加入到HashSet集合中,但实际上order和order对应的是ORDERS表中的同一条记录。对于这一问题,有两种解决方案:()在应用程序中,谨慎地把来自于不同Session缓存的游离对象加入到Set集合中,如:Setorders=newHashSet();orders.add(order);if(!order.getOrderNumber().equals(order.getOrderNumber()))order.add(order);()在Order类中重新实现equals()和hashCode()方法,按照业务主键比较两个Order对象是否相等。提示:为了保证HashSet正常工作,要求当一个对象加入到HashSet集合中后,它的哈希码不会发生变化。.List(列表List的主要特征是其对象以线性方式存储,集合中允许存放重复对象。List接口主要的实现类有LinkedList和ArrayList。LinkedList采用链表数据结构,而ArrayList代表大小可变的数组。List接口还有一个实现类Vector,它的功能和ArrayList比较相似,两者的区别在于Vector类的实现采用了同步机制,而ArrayList没有使用同步机制。List只能对集合中的对象按索引位置排序,如果希望对List中的对象按其他特定方式排序,可以借助parator和Collections类。Collections类是集合API中的辅助类,它提供了操纵集合的各种静态方法,其中sort()方法用于对List中的对象进行排序:a.sort(Listlist):对List中的对象进行自然排序。b.sort(Listlist,paratorparator):对List中的对象进行客户化排序,parator参数指定排序方式。如Collections.sort(list);.Map(映射)Map(映射)是一种把键对象和值对象进行映射的集合,它的每一个元素都包含一对键对象和值对象,而值对象仍可以是Map类型,依次类推,这样就形成了多级映射。Map有两种比较常用的实现:HashMap和TreeMap。HashMap按照哈希算法来存取键对象,有很好的存取性能,为了保证HashMap能正常工作,和HashSet一样,要求当两个键对象通过equals()方法比较为true时,这两个对象的hashCode()方法返回的哈希码也一样。TreeMap实现了SortedMap接口,能对键对象进行排序。和TreeSet一样,TreeMap也支持自然排序和客户化排序两种方式。例:创建一个缓存类EntityCache,它能粗略地模仿Session的缓存功能,保证缓存中不会出现两个OID相同的Customer对象或两个OID相同的Order对象,这种惟一性是由键对象的惟一性来保证的。Key.java:packagemypack;publilassKey{privateClassclassType;privateLongid;publicKey(ClassclassType,Longid){this.classType=classType;this.id=id;}publilassgetClassType(){returnthis.classType;}publicLonggetId(){returnthis.id;}publicbooleanequals(Objecto){if(this==o)returntrue;if(!(oinstanceofKey))returnfalse;finalKeyother=(Key)o;if(classType.equals(other.getClassType())&&id.equals(other.getId()))returntrue;returnfalse;}publicinthashCode(){intresult;result=classType.hashCode();result=*result+id.hashCode();returnresult;}}EntityCache.java:packagemypack;importjava.util.*;publilassEntityCache{privateMapentitiesByKey;publicEntityCache(){entitiesByKey=newHashMap();}publicvoidput(BusinessObjectentity){Keykey=newKey(entity.getClass(),entity.getId());entitiesByKey.put(key,entity);}publicObjectget(ClassclassType,Longid){Keykey=newKey(classType,id);returnentitiesByKey.get(key);}publiollectiongetAllEntities(){returnentitiesByKey.values();}publicbooleancontains(ClassclassType,Longid){Keykey=newKey(classType,id);returnentitiesByKey.containsKey(key);}}
java怎么创建一个list集合
java创建一个list集合,List是不能直接实例化的,所以要用其他的,如ArrayList。
华为ascend p1 swin安卓双系统切换(安卓双系统怎么变单系统)
本文为大家介绍win安卓双系统切换(安卓双系统怎么变单系统),下面和小编一起看看详细内容吧。
联想s2005(华为ascend p1 s)平板怎么切换安卓系统
在桌面找到系统切换程序,打开点击“确定”几次,系统会自动切换到安卓系统,无需开关机,一键热切换。
华为ascend p1 s本文为大家介绍手机电池如何延长使用寿命(手机电池如何延长寿命),下面和小编一起看看详细内容吧。
手机电池不耐用?延长电池寿命的个技巧
联想s2005(华为ascend p1 s)用户要想延长电池的有效使用时间,除了保证充电器的质量外,正确的充电方法也是必不可少的,因为质量差的充电器或错误的充电方法都会影响电池的使用时间和循环寿命。以下是笔者整理的关于延长手机充电电池寿命的小窍门:
联想s2005的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于华为ascend p1 s、联想s2005的信息别忘了在本站进行查找喔。