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

网站开发vs平台的功能局域网内用自己电脑做网站

网站开发vs平台的功能,局域网内用自己电脑做网站,做网站的语言叫什么,设计自己的logoMap接口有两个实现类#xff0c;一个是HashMap容器类#xff0c;另一个是TreeMap容器类。TreeMap容器类的使用在API上于HashMap容器类没有太大的区别。它们的区别主要体现在两个方面#xff0c;一个是底层实现方式上#xff0c;HashMap是基于Hash算法来实现的吗#xff0c…        Map接口有两个实现类一个是HashMap容器类另一个是TreeMap容器类。TreeMap容器类的使用在API上于HashMap容器类没有太大的区别。它们的区别主要体现在两个方面一个是底层实现方式上HashMap是基于Hash算法来实现的吗而TreeMap是基于红黑树来实现的另一个区别体现在功能上虽然HashMap容器类的效率比较高但是它无法实现排序操作。相对的TreeMap虽然在效率上比不上HashMap但是它能够实现对双例集合中元素的key进行排序操作。值得注意的是TreeMap只支持对双例集合中的键key进行排序操作这个也好理解因为双例集合中的key与value是一一对应的关系对key进行排序就相当于也对value进行了排序。 由于TreeMap容器类和HashMap容器类在使用上没有多大的区别因此我们只要掌握好TreeMap中的排序操作再与HashMap容器类进行对比学习就可以很好地掌握TreeMap容器类了。 TreeMap容器类对键key的排序操作和之前我们介绍的TreeSet容器类对元素的排序操作是相似的。在使用它们的时候都需要给定排序规则而对于排序规则它们二者都有两种给定排序规则的方式一种是通过元素自身来实现比较规则这种方式就是按照元素内定义的规则来实现排序另一种是通过编程者自定义的比较器来实现比较规则。接下来对TreeMap中的这两种方式进行一一介绍。 首先介绍通过元素自身来实现比较规则的方式。这种方式是按照元素内定义的规则来实现排序的。这里我们用一个例子来进行说明我们TreeMapTest类中实例化了一个TreeMap容器类对象map在map对象中我们将它的key设置为类Uservalue的类型仍然为String其中User类的代码如下所示。可以发现在User类中我们重写了compareTo方法这个方法中定义比较规则——按照对象的userAge这个变量的大小进行排序。这时我们在TreeMapTest类中实例化User对象u1u2和u3将几个对象作为key添加容器map中去。接下来我们只要遍历容器map中的元素就能发现它的结果已经按照User中定义的比较规则进行排序了。此处要注意的是当遇到比较规则中的变量值是相同的情况则系统会取另一个变量来按照这个新的变量的默认排序规则进行排序。比如在演示代码中我们的对象u2和u3的userAge这个变量的值都是20那么这个是就会取userName这个变量来进行排序。比较结果为u3在u2的前面因为按照系统默认的比较规则字母g在字母l的前面。 package com.container.demo;import java.util.Objects;public class User implements ComparableUser{private String usersName;private int usersAge;public String getUsersName() {return usersName;}public void setUsersName(String usersName) {this.usersName usersName;}public int getUsersAge() {return usersAge;}public void setUsersAge(int usersAge) {this.usersAge usersAge;}Overridepublic String toString() {return User{ usersName usersName \ , usersAge usersAge };}public User(String usersName, int usersAge) {this.usersName usersName;this.usersAge usersAge;}public User() {}Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;User user (User) o;return usersAge user.usersAge Objects.equals(usersName, user.usersName);}Overridepublic int hashCode() {return Objects.hash(usersName, usersAge);}//定义比较规则//正数大负数小0相等Overridepublic int compareTo(User o) {if(this.usersAge o.usersAge)return 1;if(this.usersAge o.usersAge){return this.usersName.compareTo(o.getUsersName());}return -1;} }接下来介绍使用自定义的比较器来实现排序的方法。这里我们仍然以一个例子来进行说明。首先在TreeMapTest类中实例化一个TreeMap容器类对象map1。我们把类Student类作为容器map1中key的类型Sudent类的代码如下所示。将Student类和上面个的User类进行比较能够发现在Student类中并没有重写compareTo方法因此这个类中并没有实现排序规则。和上面一样我们也实例化了3个Student对象将其添加到容器map1中这时因为我们没有定义比较器Student类中也没有实现比较规则所以如果我们运行程序那么程序就会在运行时报错提醒我们没有定义key的排序规则。如下图所示 所以我们需要定义一个比较器并将它使用到容器map1中。这里我们定义比较器StudentComparator它的实现代码如下所示。原理就是比较器StudentComparator实现了接口Comparator然后在这个比较器中重写了compare方法。定义比较器之后我们就需要将比较器应用到map1容器中应用的方法和TreeSet容器类中应用比较器到容器中是一样的。TreeMap容器类的构造方法中提供了一个有参构造这个参数就是比较器。所以我们只需要在实例化容器的时候将比较器作为参数传入构造方法中就能应用比较器到容器中了。这里要注意传入参数的形式因为比较器的实质是一个非静态类因此在另一个类中使用时需要进行实例化操作为了方便我们只需要在需要传入参数的地方进行new 操作即可不需要对实例化的对象进行实际接收。 package com.container.demo; //比较器 import java.util.Comparator; public class StudentComparator implements ComparatorStudent {//定义比较规则Overridepublic int compare(Student o1, Student o2) {if(o1.getAge() o2.getAge()){return 1;}if(o1.getAge() o2.getAge()){return o1.getName().compareTo(o2.getName());}return -1;}} import java.util.Objects;public class Student {private String name;private int age;Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;Student student (Student) o;return age student.age Objects.equals(name, student.name);}Overridepublic int hashCode() {return Objects.hash(name, age);}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public Student(String name, int age) {this.name name;this.age age;}public Student() {}Overridepublic String toString() {return Student{ name name \ , age age };} }package com.container.demo;import java.util.Map; import java.util.Set; import java.util.TreeMap;public class TreeMapTest {public static void main(String[] args) {//实例化TreeMap容器MapUser,String map new TreeMap();User u1 new User(linyi,18);User u2 new User(linling,20);User u3 new User(lingzi,20);map.put(u1,liyi);map.put(u2,linling);map.put(u3,lingzi);SetUser keys map.keySet();for (User key:keys) {System.out.println(key---map.get(key));}System.out.println(___________________________________);MapStudent,String map1 new TreeMap(new StudentComparator());Student s1 new Student(linyi,18);Student s2 new Student(linling,20);Student s3 new Student(linger,20);map1.put(s1,linyi);map1.put(s2,linling);map1.put(s3,linger);SetStudent keys1 map1.keySet();for (Student key:keys1) {System.out.println(key--------map1.get(key));}} }
http://www.w-s-a.com/news/165844/

相关文章:

  • 可不可以异地建设网站学做网站培训班要多少钱
  • 茌平网站建设公司免费的云服务器有哪些
  • 手机网站单页面铜陵网站制作公司
  • 网站logo怎么做才清晰千库网官网首页登录
  • 山西省建设银行网站首页长沙网站建设制作
  • 襄阳市做网站 优帮云百度搜索次数统计
  • 自己做视频直播网站盐城做网站多少钱
  • 买个网站服务器多少钱重庆做的好的房产网站
  • 深圳定制建站网站建设推广关键词怎么设置
  • 宝山网站建设 网站外包修改wordpress版权
  • 建立网站的基本步骤新网站多久会被百度收录
  • 软件设计开发流程图廊坊关键词seo排名方案
  • 南山住房和建设局网站网站被k 多久恢复
  • 阿里买域名 电脑做网站做简历哪个网站好
  • 个人网站免费服务器单页网站的域名
  • 网站设计简单讲解小店怎么做网站
  • 校园网站的意义wordpress去除更新
  • 网站开发用python吗常用的网页开发工具有哪些
  • 北京市住房建设投资建设网站做商城网站要哪些流程
  • seo网站改版杭州建设局官网
  • 物流网站建设策划书泰然建设网站
  • 百度做网站的费用采集发布wordpress
  • 网站运维公司有哪些防录屏网站怎么做
  • 昆明做网站seo的网站制作专业
  • 聊城制作手机网站公司wordpress 头条
  • 商城微网站模板一般电商网站做集群
  • winserver2008上用iis发布网站嵊州网站制作
  • 网站内页权重怎么查辽宁建设工程信息网怎么上传业绩
  • 丰都网站建设价格镇江网站制作费用
  • app手机网站建设黄网站建设定制开发服务