package com.bjsxt.Set_TreeSet; import java.util.Comparator; public class ComCharactorAndAge implements Comparator { @Override public int compare(Object o1, Object o2) { Person p1 = (Person) o1; Person p2 = (Person) o2; if (p1.getName().compareTo(p1.getName()) < 0) { return -1; } if (p1.getName().compareTo(p1.getName()) > 0) { return 1; } if (p1.getName().compareTo(p1.getName()) == 0){ return p1.getAge() - p2.getAge(); } return 0; } }
为什么我这么写if语句最后要再加个return 0;呢
老师那么写就不需要加 return 0;
package com.bjsxt.Set_HashSet; import java.util.Objects; public class Person { private String name; private int 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 Person() { } public Person(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object o) { System.out.println("equals"); if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return age == person.age && Objects.equals(name, person.name); } @Override public int hashCode() { System.out.println("hashcode"); return Objects.hash(name, age); } @Override public String toString() { return "name="+this.name+","+"age="+this.age; } } package com.bjsxt.Set_HashSet; import java.util.HashSet; public class TestPerson { public static void main(String[] args) { HashSet hs=new HashSet(); Person p1=new Person("marry",20); Person p2=new Person("lili",23); Person p3=new Person("marry",20); Person p4=new Person("jack",30); hs.add(p1); hs.add(p2); hs.add(p3); hs.add(p4); System.out.println(hs); } }
为什么我在HashSet方法创建自定义对象 在输出时直接输出HashSet对象 时如果不重写toString方法输出的就是Person对象的地址值呢
我看老师并没重写toString方法啊
final void join() 描述: 调用该方法的线程强制执行,其他线程处于阻塞状态,该线程执行完毕,其他线程在执行。
这里a1,和a2在抢占,主线程阻塞,跟这个描述不符合啊
老师UDP传输协议不需通过服务器,接收数据,在通过服务器发给指定目的吗
hashmap在创建自定义对象时需要重写hashcode和equals方法吗
字符串的compareTo方法比较字符串小于0返回-1,和大于0返回1代表什么意思呢?
compareto方法之前在哪学的?返回去找没找到
如果集合有序加入自定义对象的时候就需要定义比较器吗
如果底层数据结构为哈希表加入自定义对象就需要重写hashcode 和equals方法是吗
学的有点乱总结不过来
老师,eclipse里面怎么输入main就出来了public static void main(String[] args)的啊?
这个tostring方法是干嘛的呢 之前学的忘了
this.age是当前对象的年龄,p1.getAge();是传进来Object类型对象的年龄 那他两个不是一个吗?怎么还就升序了
老师idea重写方法的快捷键是什么?之前用的eclipse现在用了idea不会整了
什么是存储自定义对象作为key?
看到这位同学跟老师的解答,产生了疑惑:
视频里的add方法当中有写:
所以key对应的value应该不是null ,而是一个一个的object类型的对象 new Object();
获取所有键与值和他们关系的时候把他们赋值给了 Set类 和Collection类对象 之前讲的collection和set类不是接口吗?接口不能new对象 但是可以这样定义变量是吗
如图所示,想问一下老师,看这位同学跟您给他的解答,产生了疑惑
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637