package com.swift;

public class Same_Person_Test {

    public static void main(String[] args) {
/*
* Object判断是否是同一人
*/
Person per1=new Person("zhangsan",30);
Person per2=new Person("lisi",27);
Person per3=new Person("lisi",27); System.out.println(per3.equals(per2));
System.out.println(per1.equals(per2));
System.out.println(per2.equals(per2));
} } 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(String name, int age) {
super();
this.name = name;
this.age = age;
} public boolean equals(Object obj) {
if(this==obj) {
return true;
}
if(obj instanceof Person) {
Person per=(Person) obj;
return this.getName().equals(per.getName())&&this.getAge()==per.getAge();
}
return false; } }

对人进行按年龄排序,升序,如果年龄相同按名字字母拼音升序

package com.swift;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.ListIterator; public class Same_Person_Test { public static void main(String[] args) {
/*
* Object判断是否是同一人 集合按照人的年龄排序,如果年龄相同按名字的字母顺序升序
*/
Person[] per =new Person[5];
per[1]=new Person("zhangsan",30);
per[2]=new Person("lisi",27);
per[3]=new Person("wangwu",19);
per[4]=new Person("wangliu",19);
per[0]=new Person("tianqi",37);
List<Person> list=new ArrayList<Person>();
for(Person person:per) {
list.add(person);
} System.out.println(per[3].equals(per[2]));
System.out.println(per[1].equals(per[2]));
System.out.println(per[2].equals(per[2])); Collections.sort(list, new Comparator<Person>() { @Override
public int compare(Person arg0, Person arg1) {
int num=arg0.getAge()-arg1.getAge();
return num==0?arg0.getName().compareTo(arg1.getName()):num;
}
}); ListIterator it=list.listIterator();
while(it.hasNext()) {
Person p=(Person) it.next();
System.out.println(p.toString());
}
} } 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(String name, int age) {
super();
this.name = name;
this.age = age;
} public boolean equals(Object obj) {
if(this==obj) {
return true;
}
if(obj instanceof Person) {
Person per=(Person) obj;
return this.getName().equals(per.getName())&&this.getAge()==per.getAge();
}
return false;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
} }

Java Object类 instanceof关键字 练习:判断是否为同一人 集合按照人的年龄排序,如果年龄相同按名字的字母顺序升序 Comparator比较器的更多相关文章

  1. instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。

    http://lavasoft.blog.51cto.com/62575/79864/    深入Java关键字instanceof 2008-06-02 07:50:43 标签:Java 关键字 休 ...

  2. [zz]Java中的instanceof关键字

    1.What is the 'instanceof' operator used for? stackoverflow的一个回答:http://stackoverflow.com/questions/ ...

  3. Java基础系列--instanceof关键字

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8492158.html instanceof关键字是在Java类中实现equals方法最常使 ...

  4. Java Object类 和 String类 常见问答 6k字+总结

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  5. Java中的instanceof关键字

    instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boo ...

  6. Java Object类及其equals方法

    基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超 ...

  7. java Object 类

    Object o=new Object(); 其中有两个受保护的方法:             1.protected void finalize()             2.protected ...

  8. AJPFX关于Java Object类常用方法小总结

    java.lang.Object   java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类 ...

  9. Java Object类中的equals方法

    Object类中的equals方法用于检测一个对象是否等于另外一个对象.在Object类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用,它们一定是相等的.从这点上看,将其作为 ...

随机推荐

  1. js中的原型以及原型链

    在js中原型是每个构造函数的属性: 这个算 js 核心概念的一部分 var f1 = new Foo(); 对象 f1 的构造函数就是 Foo , f1的原型 __proto__ 就指向构造函数 Fo ...

  2. 非常实用的Sublime插件集合 – sublime推荐必备插件

    插件介绍 ***PackageControl*** 功能:安装包管理 简介:sublime插件控制台,提供添加.删除.禁用.查找插件等功能 使用方法: 1.安装好控制台,如有不能正常调用 Packag ...

  3. 剑指Offer的学习笔记(C#篇)-- 二叉树的下一个节点(好理解版本)

    题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 一 . 理解题意 该题目我们可以借鉴一个非常影响不好的 ...

  4. vue element-ui IE9--11报 “无法获取未定义或null引用的属性‘toLowerCase’”

    今天做zymh比赛的一个管理后台,用的技术是vue+element-ui+vue-router+axios,其他浏览器运行的很好,但是在IE(从IE11到IE9,vue支持IE9以上)都报错 点进去就 ...

  5. CC10:访问单个节点的删除

    题目 实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点. 给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true 解法 这道题并不难,主要是题目中这句话确定 ...

  6. maven settings.xml windows

    <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...

  7. NET中并行开发优化

    NET中并行开发优化 让我们考虑一个简单的编程挑战:对大数组中的所有元素求和.现在可以通过使用并行性来轻松优化这一点,特别是对于具有数千或数百万个元素的巨大阵列,还有理由认为,并行处理时间应该与常规时 ...

  8. 037 Sudoku Solver 解数独

    写一个程序通过填充空格来解决数独.空格用 '.' 表示. 详见:https://leetcode.com/problems/sudoku-solver/description/ class Solut ...

  9. Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名

    1 shell下批量出去文件名中的空格 执行看现象: 上面的是执行for循环以后看到的: 然而源目录下的文件如下: 这样的话想要cat某个具体文件是拿不到的,所以需要去空格处理: 处理方式有很多:如 ...

  10. 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...