标签:有一个 err 自己的 users 面试 over nbsp for 使用
作为一名刚上路的超初级程序员,今天终于可以迈开自己的第一步,写一篇博客。把我自己都感动哭了。
今天看面试题时看到了一个Comparable 的使用,才发现自己好像并没有使用过这个接口,具体这个接口是怎么用的,我在看了几篇comparable的博客以后觉得应该把这个东西记录下来,也希望自己能够得到成长。
首先我们举一个排列int数组的例子,假如一个数组中有这么几个元素,希望将他进行从小到大排序,不使用冒泡排序等算法,直接使用java中Arrays类的方法进行使用,这个方法就可以直接对数组中的元素进行排序,十分方便。
int[] array = {9,5,7,5,31,7}; Arrays.sort(array); for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } 结果:5 5 7 7 9 31
如果说,现在有一个要求,有一个实体类User,User类中有三个属性,id,name,price
class User{ private int id; private String name; private int price;
需要你按照价格升序进行排序(就如上的int数组排序一样)。那么我们做这个的时候,还是可以使用sort()方法,不同的是,之前使用的是int类型的数组,这次需要变更成为,User类型的数组按价格进行排序,这时候就需要让User去实现comparable接口,重写其中的方法,compareTo方法的返回值只有 -1, 0, 1
class User implements Comparable<User>{ private int id; private String name; private int price; public User(int id, String name, int price) { this.id = id; this.name = name; this.price = price; } @Override public String toString() { return "User{" + "id=" + id + ", name=‘" + name + ‘\‘‘ + ", price=" + price + ‘}‘; } @Override public int compareTo(User o) { if(this.price>o.price){ return 1; }else if(this.price<o.price){ return -1; }else { return 0; } } }
最后 new 几个对象,放入User类型的数组中进行比较,使用sort()进行排序就可以了
User[] users = new User[3]; users[0] = new User(1,"寿司",29); users[1] = new User(2,"蛋挞",21); users[2] = new User(3,"牛排",25); Arrays.sort(users); for (int i = 0; i < users.length; i++) { System.out.println(users[i]); } 结果: User{id=2, name=‘蛋挞‘, price=21} User{id=3, name=‘牛排‘, price=25} User{id=1, name=‘寿司‘, price=29}
标签:有一个 err 自己的 users 面试 over nbsp for 使用
原文地址:https://www.cnblogs.com/Crush123/p/11580792.html