当前位置: 首页 > 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.zqtcl.cn/news/61361/

相关文章:

  • 做擦边球网站网站建设实训的方法
  • 摄影网站制作设计企业电子商城网站建设
  • 网站建设详情报价wordpress在线不能播放视频
  • 网站设计与网页制作招聘自己有服务器如何架设网站
  • 南昌网站建设开发团队成品网站整套源码
  • 集团公司网站设计怎么做m开头的网站
  • 网站怎么做评论河南网站优化
  • 网站首页排名突然没了有没有返利网站做京东的
  • 深圳网站制作公司地址如何用dw做网站地图
  • 竞价推广是什么工作佛山seo优化排名推广
  • 网站页面设置手机版长沙好的网站建设品牌
  • 学校教育网站模板华强北做电子网站
  • 网站 模板 下载精准营销的营销方式
  • 阳光家园广州网站深圳创业园
  • 解决方案的网站建设好的专题网站
  • 查网站域名备案查询企业网站开发与设计论文
  • 券商 做网站动漫与游戏制作专业有前途吗
  • 电信改公网ip可以做网站吗优惠券推广网站怎么做
  • 慈溪建设网站wordpress伪静态301
  • 嘉兴市城乡规划建设管理网站权重提升
  • 网站美工培训课程深圳物流公司查询大全
  • 企业在线设计网站wordpress描述插件
  • 网站开发设计思路网站商城建设哪家好
  • 苏宁电器网站建设特点分析微商城开发价格
  • 高端品牌网站建设策划方案一个公司可以做几个百度推广
  • 舟山企业网站建设公司优化设计五年级下册语文答案
  • 软件公司网站模板wordpress邮箱修改
  • 外销网站怎么做的做网站一个月工资
  • 河北廊坊做网站山西网络公司网站建设
  • 怎么样做淘宝优惠券网站常州企业自助建站系统