我们知道集合框架是存储数据的容器,当里面存储的是简单地类型数据时,还比较简单,可是如果里面存储的是类对象,那么如何根据对象的某个属性对对象进行排序呢?这就需要实现Comparator接口,代码如下:写道
package learning_lev1_集合框架;
import java.util.Collections;
import java.util.Comparator;
public class ComparatorUser implements Comparator {
//重写compara方法,实现自己要比较的属性,在调用Collections.sort(list1, comparator);
//可实现对list排序
public int compare(Object o1, Object o2) {
Student stu1=(Student)o1;
Student stu2=(Student)o2;
if(stu1.getAge()>stu2.getAge()) return 1;
else if(stu1.getAge()<stu2.getAge()) return -1;
else return 0;
}
}
import java.util.Collections;
import java.util.Comparator;
public class ComparatorUser implements Comparator {
//重写compara方法,实现自己要比较的属性,在调用Collections.sort(list1, comparator);
//可实现对list排序
public int compare(Object o1, Object o2) {
Student stu1=(Student)o1;
Student stu2=(Student)o2;
if(stu1.getAge()>stu2.getAge()) return 1;
else if(stu1.getAge()<stu2.getAge()) return -1;
else return 0;
}
}
测试用的Student类
package learning_lev1_集合框架; public class Student { private int num; private String name; private int age; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student(String name, int age,int num) { this.name = name; this.age = age; this.num=num; } public String toString(){ return "编号"+num+",姓名:"+name+",年龄:"+age; } }
测试主类
写道
package learning_lev1_集合框架;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* 集合框架中有collection父接口,下面有list(元素有序,可重复),set(元素无序,不可重复),queue(队列)等子接口
* Arraylist ,linklist是list的具体实现
* hashset是set的具体实现
* priorityqueue是queue的具体实现
* @author mypc
*
*/
public class TestArraylist {
public void test1(){
List<Student> list1=new ArrayList<Student>();
Student stu1=new Student("唐僧", 30, 01);
Student stu2=new Student("悟空",32,02);
Student stu3=new Student("八戒", 34,03);
Student stu4=new Student(" 沙僧 ",31,04);
//添加元素
list1.add(stu1);
list1.add(stu2);
list1.add(stu3);
list1.add(stu4);
//删除元素
// list1.remove(stu1);
//遍历元素
System.out.println("before sorted:");
for(int i=0;i<list1.size();i++)
{
Student stu=list1.get(i);
System.out.println(stu.getName()+ " "+stu.getAge());
}
ComparatorUser comparator=new ComparatorUser();
//此处调用sort方法,并用comparator做参数,才能实现排序
Collections.sort(list1, comparator);
System.out.println("after sorted:");
for(int i=0;i<list1.size();i++)
{
Student stu=list1.get(i);
System.out.println(stu.getName()+ " "+stu.getAge());
}
}
public static void main(String []args)
{
TestArraylist test=new TestArraylist();
test.test1();
}
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* 集合框架中有collection父接口,下面有list(元素有序,可重复),set(元素无序,不可重复),queue(队列)等子接口
* Arraylist ,linklist是list的具体实现
* hashset是set的具体实现
* priorityqueue是queue的具体实现
* @author mypc
*
*/
public class TestArraylist {
public void test1(){
List<Student> list1=new ArrayList<Student>();
Student stu1=new Student("唐僧", 30, 01);
Student stu2=new Student("悟空",32,02);
Student stu3=new Student("八戒", 34,03);
Student stu4=new Student(" 沙僧 ",31,04);
//添加元素
list1.add(stu1);
list1.add(stu2);
list1.add(stu3);
list1.add(stu4);
//删除元素
// list1.remove(stu1);
//遍历元素
System.out.println("before sorted:");
for(int i=0;i<list1.size();i++)
{
Student stu=list1.get(i);
System.out.println(stu.getName()+ " "+stu.getAge());
}
ComparatorUser comparator=new ComparatorUser();
//此处调用sort方法,并用comparator做参数,才能实现排序
Collections.sort(list1, comparator);
System.out.println("after sorted:");
for(int i=0;i<list1.size();i++)
{
Student stu=list1.get(i);
System.out.println(stu.getName()+ " "+stu.getAge());
}
}
public static void main(String []args)
{
TestArraylist test=new TestArraylist();
test.test1();
}
}
相关推荐
Java集合框架使用总结 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计...
java集合 框架 泛型,枚举,有PPT详解,并有实例
【完整课程列表】 完整版 Java初级教程 Java语言程序设计 第1章 Java语言简介(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第2章 基本...完整版 Java初级教程 Java语言程序设计 第8章 集合框架(共19页).ppt
Java里面最重要,最常用也就是集会一部分了。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在Java集合框架中提供的一些实现。 本书内容非常丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力...
完整版 Java基础入门教程 Java程序语言设计 03 java对象 集合框架(共18页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 java对象 类和对象1(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 ...
Java集合框架.ppt,大家来看看,有好处的,希望给你们带来收获,简单,通俗易懂
Java集合框架是Java程序员必备的核心知识之一。在面试中,对Java集合框架的深入理解将成为展现你的编程能力和解决问题的能力的重要因素。本篇面试题集锦旨在帮助你更深入地了解Java集合框架的复杂概念和应用,以及...
Java集合框架是Java编程中的一个非常重要的部分,提供了一组用于处理数据集合的接口和类。其中Collection接口是Java集合框架的基础接口之一,定义了一些基本的集合操作,包括添加元素、删除元素、遍历集合等。在这里...
java中的集合框架包括java集合框架的相关文档、例子,程序代码资源,是复习的好资源
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在java集合框架中提供的一些实现。. 本书内容丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力。...
掌握Java集合框架中的三大类集合的特征和适用场合 掌握ArrayList类的使用 掌握HashMap类的使用 了解HashSet类的使用 掌握Collections类的使用 了解集合框架中的其它集合类 集合框架(Collection Framework) java.util...
02 Java编程基础(共61页).ppt 03 自定义方法(共14页).ppt 04 面象对象编程初步-类和对象(共54页).ppt 05 面向对象编程-封装(共21页).ppt 06 面向对象编程-继承和多态(共28页).ppt 07 面向对象编程-接口和...
基于JAVA集合框架及实用类实现的超市会员管理系统,包含:开卡、积分累计、积分兑换、查询剩余积分、修改密码等功能。
02 Java编程基础(4学时)(共55页) 03 数组(2学时)(共22页) 04 类和对象(2学时)(共31页) 05 继承和多态(2学时)(共40页) 06 类的高级特征(4学时)(共55页) 07 异常(2学时)(共27页) 08 线程(2学时)(共15页)...
Java学习资料 Java 编程语言的基础知识,Java 的语法、面向对象编程、集合框架、IO 操作等内容,并提供大量的案例代码和实践练习
Java基础入门教程 Java编程技术10 集合框架(略)(共48页).ppt Java基础入门教程 Java编程技术11 Java IO(2学时)(共30页).ppt Java基础入门教程 Java编程技术12 网络编程(2学时)(共20页).ppt Java基础入门教程 ...
【完整课程列表】 完整版 Java初级教程 Java语言程序设计 第1章 Java语言简介(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第2章 基本...完整版 Java初级教程 Java语言程序设计 第8章 集合框架(共19页).ppt
集合框架练习.doc
这份资源旨在为您提供关于 Java 集合框架的详细讲解,涵盖了集合的类型、特性、应用场景以及使用方法。通过深入学习,您将建立坚实的集合框架知识,能够更好地选择和应用适合的集合来满足不同的编程需求。 集合框架...