我们知道集合框架是存储数据的容器,当里面存储的是简单地类型数据时,还比较简单,可是如果里面存储的是类对象,那么如何根据对象的某个属性对对象进行排序呢?这就需要实现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中,集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。这个...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
集合框架是Java编程语言中的核心组成部分,它提供了一套高效、灵活的数据结构和算法操作,使得程序员能够方便地存储和管理对象。这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一种高效、灵活的方式来存储和操作数据。这个框架由一系列接口和类组成,它们定义了不同类型的集合,如List、Set和Map,以及它们的操作方法和实现原理。理解...
Java集合框架是Java编程语言中一个至关重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理各种类型的数据。本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java...
数据结构和Java集合框架是Java编程中至关重要的概念,它们是高效编程和算法设计的基础。在Java中,数据结构指的是组织、存储和管理数据的方式,而集合框架则是一组接口和类,为处理各种数据结构提供了统一的API。 ...
JAVA集合框架学习笔记 JAVA集合框架是Java语言中提供的一种数据结构,用于存储和管理大量数据。它提供了多种接口和实现类,例如Collection、List、Map等,帮助开发者更方便地处理数据。 什么是异常? 在Java中,...
Java 集合框架(JCF:Java Collections Framework)之概述 Java 集合框架(JCF:Java Collections Framework)是 Java 语言中的一组类库,用于实现集合操作的统一标准。集合是计算机科学中的一种基本概念,来源于...
Java集合框架是Java编程语言中处理对象集合的一套接口和类。该框架提供了用于存储和操作集合的标准方法。在Java集合框架中,基本的接口分为两大类:Collection和Map。 Collection接口用于表示一组对象,称为其元素...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了处理对象集合的统一接口和实现。在Java中,集合框架主要由一系列接口和类组成,这些接口和类定义了存储、操作和管理对象的基本行为。让我们...
Java集合框架是Java编程语言中的核心部分,它提供了一组高效、灵活的数据结构,使得开发者可以方便地存储和管理各种类型的数据。Java集合框架主要包括两大类:Collection和Map。 Collection接口是所有单值容器的父...
### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...
JAVA泛型与集合框架知识点总结 JAVA泛型是JDK1.5中引入的一种机制,主要目的是可以建立具有类型安全的集合...Java泛型和集合框架是Java语言的重要组成部分,掌握它们可以使得开发者更好地开发高效、可靠的应用程序。
Java集合框架是Java编程语言中的核心部分,它提供了一套高效、灵活的数据管理机制,使得开发者可以方便地处理各种数据结构。本章我们将深入探讨Java集合框架,包括其概念、接口以及不同类型的集合结构。 首先,集合...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了存储和操作对象的统一接口和类。这个框架使得处理各种数据结构变得更加方便和高效。在这个“java集合框架的使用”主题中,我们将深入探讨如何...