`

java集合排序笔记

    博客分类:
  • Java
阅读更多
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());
		}
	}
}

 

0
0
分享到:
评论

相关推荐

    java summary(java笔记)

    学习java的一些笔记和个人总结 9、Collection 和 Collections的区别。  Collection是集合类的上级接口,继承与他的接口主要有Set 和List.。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种...

    Java开发详解.zip

    031305_【第13章:Java类集】_排序及重复元素说明笔记.pdf 031306_【第13章:Java类集】_SortedSet接口笔记.pdf 031307_【第13章:Java类集】_Iterator接口笔记.pdf 031308_【第13章:Java类集】_ListIterator接口...

    java内部学习笔记.docx

    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...

    Java笔记-集合与算法

    笔记: 集合接口、 集合实现(链表、数组列表、散列集、树集、队列与双端队列、映射表)、 集合与数组之间的转换、 算法(排序、二分查找)。

    java从入门到精通视频教程(全94讲)学习笔记整理(齐全).docx

    -排序、查找 -二进制、位运算、位移运算 -集合 -集合 -集合 -集合补充 -异常 -面试题评讲 -布局管理器 -常用组件 -swing编程实战 -绘图技术.坦克大战2 -事件处理.坦克大战3 -事件监听.坦克大战4 -事件总结.坦克大战5...

    数据结构与问题求解Java语言

    作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据结构库(Java集合类API)。本书分为四个部分:第一部分讨论适合大多数应用的集合类API的一个子集,并覆盖基本的算法分析技术、递归和...

    java_algorithm:Java算法集合:排序、高级排序、堆和堆排序、二分搜索树、并查表、图的基础、最小生成树、最短路径

    Java_Algorithm(Java算法集合) 学习算法是为了什么? 1、应对大型IT公司的算法面试题; 2、IDE即对编译算法的封装; 3、搜索引擎中对几千、几亿数据进行优劣排序; 4、游戏对算法的引用是非常丰富的; 5、算法对...

    java8集合源码分析-Awesome-Java:真棒-Java

    Java集合框架,并发容器,同步容器等 IO框架 Java基础字节流 字符流 NIO等 Java8 Java8语言的行为参数化和流编程等 Java虚拟机 Java虚拟机相关,内存模型,类加载机制,JVM性能解析等 零散的文章 数据结构与算法 ...

    Java学习笔记-个人整理的

    {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} {...

    java8集合源码分析-LearningNotes:Java笔记

    编程笔记 学习、总结、记录 ! —— since 2018/20 :bar_chart: :hot_beverage: :mobile_phone: :laptop: :floppy_disk:  :pager: :globe_with_meridians: :file_cabinet: :books: :bar_chart: 算法和数据结构 排序...

    Javaw基础课程笔记.zip

    day03、Java 选择排序、循环结构和循环控制语句。 day04、Java IDE集成开发环境_方法重载。 day05、Java 数组的概念和基本应用。 day06、Java 面向对象_类和对象_private关键字_this关键字。 day07、Java API...

    notes:JavaJava后端工程师的学习笔记https

    Java 实现 数据结构 与 排序算法 常用设计模式 单例模式 , 工厂模式 , 装饰者模式 , 代理模式 ... Java基础核心 JVM , 集合 , 类型 ,关键字... Java高级特性 多线程、锁、并发 框架 Spring , Mybatis , SpringBoot ...

    javaWeb笔记集合1

    1. 服务的启动与停止 2. 数据库的登录与退出 3.使用某个库 1.基本查询 2.条件查询 3.排序查询 4.分组查询 5.多表查询(连接查询)

    MySQL学习笔记、学习文档

    Java处理高并发量访问的处理.txt Map集合的四种遍历方式.txt Mybatis查询某- -日、周、月数据.txt MySQL安装教程.txt MySQL查询最近-周、月每月、周统计数据.txt MySQL入Ar ]很简单学习笔记李国华.dox Oracle查看表...

    Java 学习笔记,包括多线程,数据结构,算法,设计模式,Spring boot,RocketMQ.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    《数据结构与算法分析 java语言描述》 读书笔记.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    数据结构与算法-学习笔记 Java 版.zip

    逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何...

    飞秋java源码-interviewNote:面试笔记

     排序算法、动态规划、递归、回溯法、贪心算法等。 二、Java Java 基础概念  基本概念、面相对象、关键字、基本数据类型与运算、字符串与数组、异常处理、Object通用方法 Java 集合框架  数据结构 & 源码分析:...

    java8集合源码分析-AndroidLearn:Android学习笔记

    集合源码分析 Java 内存模型 并发/多线程 类加载 垃圾回收 Android UI 生命周期 启动模式 ActivityManagerService PMS Art/Dalvik Http Http WebSocket Udp Kotlin 算法 快速排序 链表 重新排版 RxJava2 Glide ...

Global site tag (gtag.js) - Google Analytics