排序方法一:
package Stuty_Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class User {
private String id;
private int age;
public User(String id,int age){
this.id = id;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
/**------数组排序------*/
// User[] users = new User[]{new User("12",12),new User("50",50),new User("30",30)};
// Arrays.sort(users,new UserComparator());
/**------容器排序------*/
List<User> users = new ArrayList<User>();
users.add(new User("13",13));
users.add(new User("40",40));
users.add(new User("20",20));
Collections.sort(users,new UserComparator());
for(User u:users){
System.out.println(u.getId());
}
}
}
class UserComparator implements Comparator<User>{
@Override
public int compare(User o1, User o2) {
return o1.getAge()-o2.getAge();
}
}
排序方法二:
package Stuty_Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Users implements Comparable<Users> {
private String id;
private int age;
public Users(String id,int age){
this.id = id;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int compareTo(Users o) {
return this.getAge() - o.getAge();
}
public static void main(String[] args) {
/**-----数组排序-----*/
// Users[] users = new Users[]{new Users("20",20),new Users("18",18),new Users("56",56)};
// Arrays.sort(users);
/**--------容器排序---------*/
List<Users> users = new ArrayList<Users>();
users.add(new Users("12",12));
users.add(new Users("50",50));
users.add(new Users("20",20));
Collections.sort(users);
for(Users u:users){
System.out.println(u.getId());
}
}
}
一个类实现了Camparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序。
Comparator可以看成一种算法的实现,将算法和数据分离,Comparator也可以在下面两种环境下使用:
1、类的设计师没有考虑到比较问题而没有实现Comparable,可以通过Comparator来实现排序而不必改变对象本身
2、可以使用多种排序标准,比如升序、降序等
分享到:
相关推荐
c++实现数组或容器排序
题目三:排序演示过程 1、编程要求 1)动态生成自定义大小的数组,并以随机数初始化数组。...该题的难点在于数据结构和排序算法,涉及的集合类(容器)使用,以及在定时器和鼠标消息处理函数中的编写。
用C++实现的插入排序算法,其中并没有使用数组,而是使用了vector容器和迭代器。
该题的难点在于数据结构和排序算法,涉及的集合类(容器)使用,以及在定时器和鼠标消息处理函数中的编写。 1) 常见的排序算法如下: 气泡排序 快速排序 折半插入排序 直接插入排序 希尔排序 直接选择排序...
3、实现在一个数组指定位置添加元素和删除元素的功能。 1、数组容量问题? 2、添加元素前后数组中元素的变化 3、删除元素前后数组中元素的变化 面向对象章节作业 1,写一个类,名为Animal,该类有两个私有属性, ...
查找排序数组中元素的首尾位置 704二分查找 981 基于时间的键值存储 33 在旋转排序数组中搜索 81 在旋转排序数组中搜索 II 第153话 第154话 852 山峰指数 69 平方英尺(x) 74 搜索一个二维矩阵 第875章 可可吃香蕉 ...
对键进行排序 HashTable 标记: class Properties 标记: class 线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。 Collections 标记: 均以synchronized实现, 性能没用提高 synchronizedCollection...
5.2 内存分配器和容器 74 5.2.1 内存分配器 75 5.2.2 容器 77 5.3 概念 82 5.3.1 基础性概念 82 5.3.2 容器概念 84 5.3.3 迭代器概念 86 5.3.4 函数对象概念 88 5.4 本章小结 89 第三篇 C++ STL...
从排序数组中删除重复项 删除元素 下一个排列 在旋转排序数组中搜索 搜索插入位置 截留雨水 旋转图像 分组字谜 最大子阵列 帕斯卡三角形 买卖股票的最佳时机 II 有效回文 单号 最小堆栈 岛屿数量 快乐号 包含重复 ...
在排序数组中查找元素的第一个和最后一个位置 搜索插入位置 有效的数独 外观数列 接雨水 合并区间 螺旋矩阵 II 加一 搜索二维矩阵 颜色分类 组合 柱状图中最大的矩形 合并两个有序数组 杨辉三角 杨辉三角 II 买卖...
用来存储数据的一个容器 2、声明变量(重点) 1、声明变量 var 变量名; 2、为变量赋值 变量名=值; 3、声明变量并赋初始值 var 变量名=值; 注意: 1、变量在声明时没有赋值的话,那么值为 undefined 2、声明...
算法:用来处理群集内的元素。它们可以出于不同的目的而搜寻,排序,修改,使用那些元素。... 3)排序值算法:包涵对容器中的值进行排序和合并的算法,还有二叉搜索算法 ,4)通用数值算法:此种算法不多,涉及到专业
扩展矩阵leetcode LeetCoding LeetCode实况/kotlin/一直刷题一直爽 注:带*号的有待完善 LeetCode题集 序号 题目 难度 分类 标签 ...两数之和 ...数组 ...数组 ...盛最多水的容器 ...在排序数组中查找元素的第一个
可排序列表视图,用于本机... (对象,数组)这些样式将应用于内部滚动视图内容容器,但不包括页眉和页脚水平的? (布尔值)为true时,SortableList的子级水平排列成一行,而不是垂直排列成一列。 默认值为false。
容器是Java编程的一大利器,常用的类是:ArrayList (List)作为可变长数组、HashMap(Map)用来建立查找表,Set很少用,只在HashMap的使用中连带用过一些。通过对这两个类的熟悉,能够将List、Set和Map三大类的基本用法...
leetcode安卓 leetcode_alg_practice ,2020-02-28 ,2020-03-02 ,2020-03-05 0004 寻找两个有序数组的中位数 0005 最长回文子串 0006 ...盛最多水的容器 ...在排序数组中查找元素的第一个和最后一个位置 0035 搜
例如find可以用来在容器中查找某特定值的元素,for_each可以用来将函数应用到容器元素之上,sort用于对容器中的元素排序。 8;迭代器(iterators)STL重要组成部分,每个容器都有自己的迭代器,只有容器才可以进行...
在排序数组中查找元素的第一个和最后一个位置 36 有效的数独 39 数组总和 Hard 4 寻找两个正序数组中的中位数 10 正则表达式匹配 23 合并K个升序链表 25 K个一组翻转链表 30 串联所有单词的子串 32 最长有效括号 37 ...
合并两个已排序的数组 交替重新排列数组 对数 数组的反转 对 0、1 和 2 的数组进行排序 平衡点 阵列中的领导者 最低平台 按组反转数组 第 K 个最小元素 截留雨水 勾股三元组 巧克力分配问题 股票买卖 左侧较小右侧较...