JAVA中关于print打印(对象)和return返回的打印顺序

12 篇文章 0 订阅
5 篇文章 0 订阅

首先我们来看这一段代码

 

public class mytest {
    public static void main(String[] args) {

        System.out.println(new mytest());
    }

    public String toString() {

        System.out.println("print");

        return "return";

    }

}

 

请问以上代码的输出顺序是什么?


A  print return

B  return print

C return

D print

E 编译通过不了

 


==============================

仔细思考以上内容

=======================================



答案是 A

 


          首先输出print 再输出 return

这时大家就好奇了为什么同样是输出为什么输出的是print return ,而不是return print呢

原因是:程序首先执行了new mytest()实例化对象,但mytest类和 toString构成了重写

所以会优先调用打印输出print,当打印执行完之后再返回return 所以最后输出 print return

 

 

如果你有一个包含对象的 List 集合,对象有一个年龄属性,你可以使用 Java 的 Comparator 接口来实现按照年龄进行排序。Comparator 接口定义了一个 compare() 方法,用于比较两个对象顺序。下面是一个示例代码: ```java import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public static void main(String[] args) { List<Person> people = new ArrayList<>(); people.add(new Person("Alice", 25)); people.add(new Person("Bob", 30)); people.add(new Person("Charlie", 20)); // Sort by age using comparator Collections.sort(people, new Comparator<Person>() { @Override public int compare(Person p1, Person p2) { return Integer.compare(p1.getAge(), p2.getAge()); } }); // Print sorted list for (Person person : people) { System.out.println(person.getName() + " - " + person.getAge()); } } } ``` 在上面的代码,我们定义了一个 Person 类,其包含 name 和 age 属性。我们创建了一个包含三个 Person 对象的 List 集合,然后使用 Collections.sort() 方法和 Comparator 接口来按照年龄排序。在 Comparator 的 compare() 方法,我们使用 Integer.compare() 方法比较两个 Person 对象的年龄属性。最后,我们遍历排序后的 List 并打印每个人的姓名和年龄。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值