gpt4 book ai didi

java - 文件排序 - 项目类型 - Java

转载 作者:行者123 更新时间:2023-12-02 05:03:59 25 4
gpt4 key购买 nike

对 Java 编程相当陌生,最近构建了一个应用程序,该应用程序接受用户输入的电影、书籍或歌曲的标题(来自单选按钮)并将其打印到文本文件,如下所示:

Movie Title: The Imitation Game Date & Time: 01/15/2015 08:52:39 
Music Title: Fly For Your Life Artist: Gunship Date & Time: 01/15/2015 08:52:51
Book Title: Alan Turing: The Enigma Date & Time: 01/15/2015 08:53:05M
Music Title: Adagio For Tron Artist: Daft Punk Date & Time: 01/15/2015 08:54:06
Music Title: Bad Wings Artist: The Glitch Mob Date & Time: 01/15/2015 08:54:13
Movie Title: Rear Window Date & Time: 01/15/2015 08:54:28

那么,我要问的是如何在文本文件中按电影、音乐或书籍进行排序?

我希望能够,每当程序结束时(我使用 JFrame 和 JPanel 作为 UI),它都会将电影、音乐、书籍排序到列表中。

我不仅想要实际的答案和代码示例,还想要一个关于它的作用和工作原理的教程。

最佳答案

So, what I'm asking is how do I sort by Movies, Music or Books in the Text File?

本质上,你不知道。您将值加载到内存中,在那里对它们进行排序,然后将它们保存回文件中。

List<String> values = new ArrayList<String>(25);
values.add("Movie Title: The Imitation Game Date & Time: 01/15/2015 08:52:39");
values.add("Music Title: Fly For Your Life Artist: Gunship Date & Time: 01/15/2015 08:52:51)");
values.add("Book Title: Alan Turing: The Enigma Date & Time: 01/15/2015 08:53:05M");
values.add("Music Title: Adagio For Tron Artist: Daft Punk Date & Time: 01/15/2015 08:54:06");
values.add("Music Title: Bad Wings Artist: The Glitch Mob Date & Time: 01/15/2015 08:54:13");
values.add("Movie Title: Rear Window Date & Time: 01/15/2015 08:54:28");

Collections.sort(values, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String t1 = o1.substring(0, o1.indexOf(" ")).trim();
String t2 = o2.substring(0, o2.indexOf(" ")).trim();
return t1.compareTo(t2);
}
});

for (String value : values) {
System.out.println(value);
}

哪个输出...

Book Title: Alan Turing: The Enigma Date & Time: 01/15/2015 08:53:05M
Movie Title: The Imitation Game Date & Time: 01/15/2015 08:52:39
Movie Title: Rear Window Date & Time: 01/15/2015 08:54:28
Music Title: Fly For Your Life Artist: Gunship Date & Time: 01/15/2015 08:52:51)
Music Title: Adagio For Tron Artist: Daft Punk Date & Time: 01/15/2015 08:54:06
Music Title: Bad Wings Artist: The Glitch Mob Date & Time: 01/15/2015 08:54:13

这只是使用String的“自然”顺序来对元素进行排序,如果你想要更复杂的东西,你必须在中编写它的规则Comparator 的 >compare 方法

看看Collections ,查找 sort 方法和 Comparator了解更多详情

你可以...

将每种类型保留在其自己的列表中,并按顺序或在自己的文件中保存它们...

你可以...

使用某种Map将相似的项目分组在一起......

Map<String, List<String>> mapItems = new HashMap<>();
map.put("Music", new ArrayList<String>(25));

map.get("Music").add("The Imitation Game Date & Time: 01/15/2015 08:52:39");
//...

看看Trail: Collections了解更多详情。

你可以...

咬紧牙关尝试使用某种数据库,有许多简单的单用户数据库可用,H2例如,这是一个纯Java数据库。看看JDBC Database Access了解更多详情...

无论如何,我鼓励您设计一个基类或接口(interface)来维护基本信息(从外观上看,标题和时间戳),然后创建特殊类,例如 Music//电影是从它延伸出来的。从长远来看,这将使管理更容易,因为信息是在其自己的容器类型的概念内维护的(并允许每种类型的专门化)

关于java - 文件排序 - 项目类型 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com