Java中的多态性Java API拥有操作和收集数据所需的所有工具,而无需编写任何类型的算法。Java Collections Framework配备了数据结构,该数据结构应该为Java程序员曾经需要的东西 - 无论是要按名称找到的东西,请保留您可以继续添加的列表,按字母顺序排列字符串列表,或排序他们所学到的伎俩的宠物。您可以在Java API中找到所有必要的工具。集合类和接口位于java.util包中。

Java编程新手?了解如何通过Udemy的课程利用Java API中的可用工具

Java Collections是一组类和接口,提供简单灵活的方法来处理对象的集合。Collections类具有特殊方法SORT(),可用于在自然阶(字母数字)或您想要的某个订单中进行排序项。并非所有集合类都包含此方法。例如,ArrayList类没有排序方法。Java API中的一些重要集合类包括:树瓣HashMapLinkedListHashSetLinkedHashMap列表地图是集合框架中的重要界面。Sort()方法被声明为静态,可以通过集合类直接调用。

Java Collections排序方法有两种声明方式:

1) public static> void sort (List List)

2) static void sort(List List, Comparator c)

这里“T”代表泛型类型。该方法没有返回类型。sort方法和Collections框架中的其他几个方法都使用了泛型。泛型是Java 5.0及以后版本中增加的特性。java中泛型的主要优点是它允许您编写类型安全的集合。它们允许一个方法或类型处理不同类型的对象,同时提供编译时类型安全。

使用Java Collections排序列表和链接列表

可以使用Collections.sort()对List或LinkedList中的对象进行排序。为使sort方法能够以自然顺序以外的方式对对象排序,则类似的接口必须实现。如果您查看上面sort方法的声明,就会注意到这个类扩展了类似的。这个词延长这实际上意味着实现了的接口类似的。Comparable接口的声明如下:

public interface Comparable {int compareTo(T obj);}

相当界面中的方法比较两个对象并返回整数值(负值,零或正值)。

三个返回值的含义:

通过在Udemy.com上学习Java课程来了解各种Java集合类和接口

实现Java Collections排序的示例代码

public class javasort {//main() {List colors = new ArrayList<>();//创建数组列表并将其赋值给List colors。//添加元素到数组列表颜色。colors.add(“黄色”);colors.add(蓝色);colors.add(“栗色”);Collections.sort(颜色);//按字母顺序排序Println ("sorted list" + colors);//输出排序的数组列表}}

输出:

排序列表[蓝色,绿色,栗色,红色,黄色]

在上面的示例中,将ArrayList分配给a列表实例变量。列表是一个接口,无法实例化。另一方面,ArrayList没有排序方法,但列表界面确实如此。字符串对象的ArrayList按字母顺序排序,因为这是字符串元素的自然顺序。

Java Collections中的比较器和可比界面排序

您的班级可以实现比较器或者是类似的用于排序对象的界面。这比较compareTo方法用于比较两个对象。

您可以使用Compareto()如果您要调整java api对象(您没有创建的对象),如整数或字符串 - Compareto()提供自然顺序的排序。您可以使用Compare()来将两个对象实例(大多数自定义对象)与任意字段进行比较。

在上面的Java代码示例1中,对String对象进行排序很简单。可以直观地看出,按字母顺序对String元素进行排序是自然顺序,Collections.sort()就是这样做的。但是,如果我们希望项目按特定顺序排列或按特定字段排列,该怎么办呢?这就是Comparable界面的用途。Comparable用于对创建的对象进行自定义排序,如书籍、歌曲列表、用户或汽车。它使用compareTo(object obj)比较两个对象。

排序自定义对象

排序对象(如String对象)非常简单。您可以直接使用Collections。(ArrayList列表)。

让我们说你有一个有一个歌曲列表的自动唱唱机类。每条曲目有三条关于这首歌的信息:标题,艺术家和评级。上述方法永远不会知道如何对曲目进行排序。Compare()将通过根据您的规范通过标题,艺术家或评级来帮助您对列表进行排序。

通过Udemy.com的课程学习各种Java排序技术

以下代码示例说明了使用Java Collections排序按标题,艺术家或评级排列歌曲列表。评级形式作为基于普及的示例级轨道中的自然顺序。

类歌曲实现可比<歌> {字符串标题;字符串艺术家;int评级;公共静态类SortBytitle实现比较器//内部类,按标题{public int比较(歌曲track1,歌曲track2){return track1.title.compareto(track2.title);public static class sortByartist实现比较器//内部类排序由艺术家{public int比较(歌曲track1,歌曲track2){return track1.artist.compareto(track2.artist);}}公共歌曲(字符串t,string a,int r)// on thine on threated {th​​is.title = t;这个.Artist = a;这个。= r;public string gettitle(){返回标题;}公共void settle(string s1){this.title = s1;} public string getartist(){return artist;} public void setArtist(String s1){this.artist = s1;public int compareto(song o){返回它。over> o.rating?1 :( this.rating 
    

使用Collections.sort的JukeBox类

public class JukeBox {public static void main(String[] arg) {Song S1 = new Song("Face to Face", "Daft Punk", 4);Song S2 = new Song("Chandelier", "Sia", 5);歌曲S3 =新歌(“Use Somebody”,“Kings Of Leon”,3);Song S4 = new Song("Be Mine"," Ellie Goulding", 2);List songList = new ArrayList();songList.add (S1);songList.add (S2);songList.add (S3);songList.add (S4);system . out。println(" UnSorted List: " + songList); Collections.sort(songList); System.out.println("Sorted List: " + songList); Collections.sort(songList, new Song.SortByTitle()); System.out.println(" Tracks sorted by Title " + songList); Collections.sort(songList, new Song.SortByArtist()); System.out.println(" Tracks sorted by Artist " + songList); } }

Java的顶级课程

硒WebDriver与Java -基础到高级+框架
拉胡尔谢蒂
4.6 (58964)
畅销书
Java 8简单的新功能
杜尔加斯州杜尔加
4.6 (6,794)
开发Minecraft插件(Java)
史蒂芬·金
4.8 (2067)
畅销书
简单的Java 9新特性:JShell, JPMS和更多
杜尔加斯州杜尔加
4.9 (441)
完整的Java核心课程:学习代码
Dezlearn教育
4.5 (737)
Java设计模式
Bharath thippiveddy.
4.5 (609)
Java:简化了多线程和并发性
SAGAR UPPULURI.
4.5 (416)
Java编程:一步一步从A到Z
Holczer Balazs
4.6 (578)

更多Java课程

Java学生还学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示