public class CollectionDemo implements Serializable,Comparable<CollectionDemo>{
private static final long serialVersionUID = -2958090810811192128L;
private int id;
private String name;
public CollectionDemo(){}
public CollectionDemo(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//方法一:继承Comparable接口,实现compareTo方法。 在随后生成集合后调用:Collections.sort(集合对象)即可实现排序
@Override
public int compareTo(CollectionDemo o) {
String i1,i2;
i1 = this.name;
i2 = o.getName();
return i1.compareTo(i2);
}
public static void main(String[] args) {
CollectionDemo c1 = new CollectionDemo(1,"c1");
CollectionDemo c2 = new CollectionDemo(2,"c2");
CollectionDemo c3 = new CollectionDemo(3,"c3");
CollectionDemo c4 = new CollectionDemo(4,"c4");
CollectionDemo c5 = new CollectionDemo(5,"c5");
List<CollectionDemo> lstCol = new ArrayList<CollectionDemo>();
lstCol.add(c1);lstCol.add(c5);lstCol.add(c4);lstCol.add(c2);lstCol.add(c3);
System.out.println("-------未排序------");
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
System.out.println("-------排序后①------");
Collections.sort(lstCol);
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
lstCol.clear();
System.out.println("-------清空后------");
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
lstCol.add(c1);lstCol.add(c5);lstCol.add(c4);lstCol.add(c2);lstCol.add(c3);
//方法二:实现Comparator的compare方法
Collections.sort(lstCol, new Comparator<CollectionDemo>() {
@Override
public int compare(CollectionDemo o1, CollectionDemo o2) {
return o2.getName().compareTo(o1.getName());
}
});
System.out.println("-------排序后②------");
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
//方法三:使用TreeSet实现类自动进行自然排序
System.out.println("-------TreeSet排序后③------");
Set<CollectionDemo> ts = new TreeSet<CollectionDemo>(); //SortedSet是TreeSet的接口
ts.add(c1);ts.add(c5);ts.add(c4);ts.add(c2);ts.add(c3);
for (CollectionDemo collectionDemo : ts) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
}
}
分享到:
相关推荐
学习java的一些笔记和个人总结 9、Collection 和 Collections的区别。 Collection是集合类的上级接口,继承与他的接口主要有Set 和List.。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种...
031305_【第13章:Java类集】_排序及重复元素说明笔记.pdf 031306_【第13章:Java类集】_SortedSet接口笔记.pdf 031307_【第13章:Java类集】_Iterator接口笔记.pdf 031308_【第13章:Java类集】_ListIterator接口...
Java技术基础 4 1.1编程语言 4 1.2 Java的特点 4 1.3 Java开发环境 4 1.4 Java开发环境配置 5 1.5 Linux命令与相关知识 5 1.6 Eclipse/Myeclipse程序结构 6 Java语言基础 7 2.1基础语言要素 7 2.2八种基本数据类型 7...
笔记: 集合接口、 集合实现(链表、数组列表、散列集、树集、队列与双端队列、映射表)、 集合与数组之间的转换、 算法(排序、二分查找)。
-排序、查找 -二进制、位运算、位移运算 -集合 -集合 -集合 -集合补充 -异常 -面试题评讲 -布局管理器 -常用组件 -swing编程实战 -绘图技术.坦克大战2 -事件处理.坦克大战3 -事件监听.坦克大战4 -事件总结.坦克大战5...
作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据结构库(Java集合类API)。本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和...
Java_Algorithm(Java算法集合) 学习算法是为了什么? 1、应对大型IT公司的算法面试题; 2、IDE即对编译算法的封装; 3、搜索引擎中对几千、几亿数据进行优劣排序; 4、游戏对算法的引用是非常丰富的; 5、算法对...
Java集合框架,并发容器,同步容器等 IO框架 Java基础字节流 字符流 NIO等 Java8 Java8语言的行为参数化和流编程等 Java虚拟机 Java虚拟机相关,内存模型,类加载机制,JVM性能解析等 零散的文章 数据结构与算法 ...
{1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...
编程笔记 学习、总结、记录 ! —— since 2018/20 :bar_chart: :hot_beverage: :mobile_phone: :laptop: :floppy_disk: :pager: :globe_with_meridians: :file_cabinet: :books: :bar_chart: 算法和数据结构 排序...
day03、Java 选择排序、循环结构和循环控制语句。 day04、Java IDE集成开发环境_方法重载。 day05、Java 数组的概念和基本应用。 day06、Java 面向对象_类和对象_private关键字_this关键字。 day07、Java API...
Java 实现 数据结构 与 排序算法 常用设计模式 单例模式 , 工厂模式 , 装饰者模式 , 代理模式 ... Java基础核心 JVM , 集合 , 类型 ,关键字... Java高级特性 多线程、锁、并发 框架 Spring , Mybatis , SpringBoot ...
1. 服务的启动与停止 2. 数据库的登录与退出 3.使用某个库 1.基本查询 2.条件查询 3.排序查询 4.分组查询 5.多表查询(连接查询)
Java处理高并发量访问的处理.txt Map集合的四种遍历方式.txt Mybatis查询某- -日、周、月数据.txt MySQL安装教程.txt MySQL查询最近-周、月每月、周统计数据.txt MySQL入Ar ]很简单学习笔记李国华.dox Oracle查看表...
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何...
排序算法、动态规划、递归、回溯法、贪心算法等。 二、Java Java 基础概念 基本概念、面相对象、关键字、基本数据类型与运算、字符串与数组、异常处理、Object通用方法 Java 集合框架 数据结构 & 源码分析:...
集合源码分析 Java 内存模型 并发/多线程 类加载 垃圾回收 Android UI 生命周期 启动模式 ActivityManagerService PMS Art/Dalvik Http Http WebSocket Udp Kotlin 算法 快速排序 链表 重新排版 RxJava2 Glide ...