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

广州网站建设网站托管运营有哪些网站可以推广

广州网站建设网站托管运营,有哪些网站可以推广,网络广告的形式有哪些?,想学网站建设方向的研究生作者主页#xff1a;paper jie_博客 本文作者#xff1a;大家好#xff0c;我是paper jie#xff0c;感谢你阅读本文#xff0c;欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏#xff0c;本专栏是针对于大学生#xff0c;编程小白精心打造的。笔者用重金(时间和精力… 作者主页paper jie_博客 本文作者大家好我是paper jie感谢你阅读本文欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏本专栏是针对于大学生编程小白精心打造的。笔者用重金(时间和精力)打造将javaSE基础知识一网打尽希望可以帮到读者们哦。 其他专栏《算法详解》《C语言》《javaSE》等 内容分享本期将会分享java数据结构中的 目录 priorityQueue中如何插入对象 元素的比较 基本类型的比较 对象类型的直接比较 对象正确的比较方式 重写equals方法 基于Comparble接口类的比较 基于比较器比较 集合框架中priorityQueue的比较方式 priorityQueue中如何插入对象 我们知道优先级队列在插入元素时有一个要求需要可以比较的对象才能插入。这里我们需要知道怎样插入自定义类型对象 比如我们插入这个student对象 class student {int age;String name;public student(int age, String name) {this.age age;this.name name;} }public class Test {public static void main(String[] args) {PriorityQueuestudent priorityQueue new PriorityQueue();priorityQueue.offer(new student(12,小猪佩奇));priorityQueue.offer(new student(12,小猪乔治));} 在运行后发现它会报类型不兼容的异常这是因为在堆中插入元素为了满足堆的性质需要进行对象的比较但是我们的student类型对象时不能直接比较的所以会报错 ​ 元素的比较 基本类型的比较 在Java中基本类型的对象是可以直接进行比较大小的 class TestCompare {public static void main(String[] args) {int a 10;int b 20;System.out.println(a b);System.out.println(a b);System.out.println(a b);char c1 A;char c2 B;System.out.println(c1 c2);System.out.println(c1 c2);System.out.println(c1 c2);boolean b1 true;boolean b2 false;System.out.println(b1 b2);System.out.println(b1 ! b2);} } 对象类型的直接比较 class Card { public int rank; // 数值 public String suit; // 花色 public Card(int rank, String suit) { this.rank rank; this.suit suit; } } public class TestPriorityQueue { public static void main(String[] args) { Card c1 new Card(1, ♠); Card c2 new Card(2, ♠); Card c3 c1; //System.out.println(c1 c2); // 编译报错 System.out.println(c1 c2); // 编译成功 ---- 打印false因为c1和c2指向的是不同对象 //System.out.println(c1 c2); // 编译报错 System.out.println(c1 c3); // 编译成功 ---- 打印true因为c1和c3指向的是同一个对象 } } 这里我们知道直接进行对象比较的是地址只有相同才会返回true不同就会报错。但是这里为毛可以比较呢这就得提到Object类了因为自定义类也会继承Object类这个类中提供了equal方法的情况下就是用的Object的equal方法。但是这个方式比较的就是引用对象的地址没有比较对象的内容这就头疼了。 // Object中equal的实现可以看到直接比较的是两个引用变量的地址 public boolean equals(Object obj) { return (this obj); } 对象正确的比较方式 重写equals方法 class student {int age;String name;public student(int age, String name) {this.age age;this.name name;}Overridepublic boolean equals(Object obj) {if(this obj) {return true;}if(obj null || !(obj instanceof student)) {return false;}student o (student) obj;return this.age ((student) obj).age this.name.equals(o.name);} } 如果指向一个对象返回true 如果传入的是null或者不是student返回false 按照类的成员对象比较只要成员对象相同就返回true 注意下调其他引用类型的比较也要调用equals 这里的缺陷就是equals只能按照相等来比较不能比较大小 基于Comparble接口类的比较 Comparable接口的源码 public interface ComparableE { // 返回值: // 0: 表示 this 指向的对象小于 o 指向的对象 // 0: 表示 this 指向的对象等于 o 指向的对象 // 0: 表示 this 指向的对象大于 o 指向的对象 int compareTo(E o); } 对用户自定义类型想要按照大小比较时在定义类的时候实现Comparable接口即可。然后在类中实现compareTo方法 class student implements Comparablestudent{int age;String name;public student(int age, String name) {this.age age;this.name name;}Overridepublic int compareTo(student o) {if(o null) {return 1;}return this.age - o.age;} } 基于比较器比较 用户自定义比较器类需要实现Comparator接口 public interface ComparatorT { // 返回值: // 0: 表示 o1 指向的对象小于 o2 指向的对象 // 0: 表示 o1 指向的对象等于 o2 指向的对象 // 0: 表示 o1 指向的对象等于 o2 指向的对象 int compare(T o1, T o2); } 这里要注意区分Comparable和Comparator接口 在自定义比较器类中重写compare方法 import java.util.Comparator; class Card { public int rank; // 数值 public String suit; // 花色 public Card(int rank, String suit) { this.rank rank; this.suit suit; } } class CardComparator implements ComparatorCard { // 根据数值比较不管花色 // 这里我们认为 null 是最小的 Override public int compare(Card o1, Card o2) { if (o1 o2) { return 0; } if (o1 null) { return -1; } if (o2 null) { return 1; } return o1.rank - o2.rank; } public static void main(String[] args){ Card p new Card(1, ♠); Card q new Card(2, ♠); Card o new Card(1, ♠); // 定义比较器对象 CardComparator cmptor new CardComparator(); // 使用比较器对象进行比较 System.out.println(cmptor.compare(p, o)); // 0表示牌相等 System.out.println(cmptor.compare(p, q)); // 0表示 p 比较小 System.out.println(cmptor.compare(q, p)); // 0表示 q 比较大 } } 这里使用Comparator需要导入java.util包 集合框架中priorityQueue的比较方式 集合框架中的PriorityQueue底层使用堆结构因此其内部的元素必须要能够比大小PriorityQueue采用了Comparble和Comparator两种方式。  1. Comparble是默认的内部比较方式如果用户插入自定义类型对象时该类对象必须要实现Comparble接口并覆写compareTo方法 2. 用户也可以选择使用比较器对象如果用户插入自定义类型对象时必须要提供一个比较器类让该类实现Comparator接口并覆写compare方法。  JDK中的源码 // 用户如果没有提供比较器对象使用默认的内部比较将comparator置为null public PriorityQueue() { this(DEFAULT_INITIAL_CAPACITY, null); } // 如果用户提供了比较器采用用户提供的比较器进行比较 public PriorityQueue(int initialCapacity, Comparator? super E comparator) { // Note: This restriction of at least one is not actually needed, // but continues for 1.5 compatibility if (initialCapacity 1) throw new IllegalArgumentException(); this.queue new Object[initialCapacity]; this.comparator comparator; } private void siftUp(int k, E x) {if (comparator ! null)siftUpUsingComparator(k, x);elsesiftUpComparable(k, x);} private void siftUpComparable(int k, E x) {Comparable? super E key (Comparable? super E) x;while (k 0) {int parent (k - 1) 1;Object e queue[parent];if (key.compareTo((E) e) 0)break;queue[k] e;k parent;}queue[k] key;}SuppressWarnings(unchecked)private void siftUpUsingComparator(int k, E x) {while (k 0) {int parent (k - 1) 1;Object e queue[parent];if (comparator.compare(x, (E) e) 0)break;queue[k] e;k parent;}queue[k] x;} 画图分析 ​
http://www.pierceye.com/news/61361/

相关文章:

  • 手机wap网站免费建站asp公司网站
  • 番禺大石做网站瓷器网站源码
  • 欧美动物人物ppt免费模板下载网站百合网网站建设与策划
  • 怎么管理网站可以搜索企业信息的软件
  • 网站app开发建设广元市建设局网站首页
  • 县工商局 网站建设商业计划书网站建设
  • 网站建设的主要内容是软件交流app和微网站的区别是什么
  • 网站搭建网杭州网站制作培训
  • 设计自己的网站qq云 wordpress
  • 考生登录贵州省住房和城乡建设厅网站哈尔滨高端网页设计
  • 网站链接分析工具博物馆网站做的好的
  • 建设银行纪检监察网站首页.net网站 还原数据库备份
  • 沈阳哪家做网站最好深圳制作网站制作公司哪家好
  • app 微信 网站三合一购物网站建设策划
  • 公司做网站需要准备什么软件凡客诚品现在还有吗
  • 电商网站开发有前台吗网站的市场营销方案
  • 网站后台 英语环保设备网站建设方案
  • 微软网站做u盘启动教程安全联盟这种网站建设
  • 怎么做qq盗号网站建德做网站
  • 青岛公司注册网站简述网站建设的五类成员
  • 网站制作加教程视频住房城乡建设部官网
  • 金华公司网站建设互动网页设计
  • 做seo推广手机网站福鼎整站优化
  • 湖北省建设厅投标报名官方网站高端网站建设网站建设设计思路
  • 行业网站建设的书国家icp备案网站
  • 建设商业门户网站的重要性com域名查询官网
  • 地方网站还有得做吗长沙营销网站建设公司
  • 重庆网领网站建设公司网站建设专家选哪家
  • 深圳福田站百度竞价排名是什么方式
  • 网站设计作业多少钱广告公司宣传语