下面我粘贴了整个代码
。
对于我们读取的DVDInfo.txt中的每一行文本,我们将创建DVDInfo类的新实例并将其存储在ArrayList中。到目前为止,请考虑这个类没有实现任何接口,在main方法中也没有使用任何排序方法。因此,在该条件下,当我们打印DVDList
arraylist时,它会打印出文件中的所有内容,而不进行排序。我的第一个疑问是存储在ArrayList中的新实例如何正确地打印文本,我们没有使用任何getter方法来存储ArrayList中的文本。
现在考虑它在main中实现可比接口和collections.sort()的整个代码。
The compareTo() method returns an int with the following characteristics:
* negative if thisObject < anotherObject
* zero If thisObject == anotherObject
* positive If thisObject > anotherObject
Wrote in SCJP by Kathy/Bates
Donnie Darko/sci-fi/Gyllenhall, Jake
Raiders of the Lost Ark/action/Ford, Harrison
2001/sci-fi/??
Caddy Shack/comedy/Murray, Bill
Star Wars/sci-fi/Ford, Harrison
Lost in Translation/comedy/Murray, Bill
Patriot Games/action/Ford, Harrison
import java.util.*;
import java.io.*;
class DVDInfo implements Comparable<DVDInfo>{
String title;
String genre;
String leadActor;
DVDInfo(String t, String g, String a){
title = t; genre = g; leadActor = a;
}
public String toString(){
return title + " " + genre + " " + leadActor + "\n";
}
public int compareTo(DVDInfo d){
return title.compareTo(d.getTitle());
}
public String getTitle(){
return title;
}
public String getGenre(){
return genre;
}
public String getLeadActor(){
return leadActor;
}
public void setTitle(String t){
title = t;
}
public void setGenre(String g){
genre = g;
}
public void setLeadActor(String l){
leadActor = l;
}
}
public class MyDVD{
public static void main(String[] args){
ArrayList<DVDInfo> dvdList = new ArrayList<DVDInfo>();
populateList(dvdList);
Collections.sort(dvdList);
System.out.println(dvdList);
}
public static void populateList(ArrayList<DVDInfo> dvdList){
try{
File file = new File("dvdinfo.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String s;
while ((s = br.readLine()) != null){
String[]tokens = s.split("/");
dvdList.add(new DVDInfo(tokens[0],tokens[1],tokens[2]));
}
br.close();
}catch(IOException e){System.out.println("File doesn\'t exist");}
}
}
[2001 sci-fi ??
, Caddy Shack comedy Murray, Bill
, Donnie Darko sci-fi Gyllenhall, Jake
, Lost in Translation comedy Murray, Bill
, Patriot Games action Ford, Harrison
, Raiders of the Lost Ark action Ford, Harrison
, Star Wars sci-fi Ford, Harrison
]
印刷
它使用tostring()
方法打印每个dvdinfo
对象。
println
方法将对其参数执行string.valueof()
。然后println
代码将打印结果字符串。
据我所知,当我们创建时: JVM为其保留一部分连续的内存。当我们向列表中添加新元素时,当元素数量达到大小的75%时,它会保留一个新的连续内存部分并复制所有元素。 我们的名单越来越大。我们正在添加新对象,必须再次重建列表。 现在发生了什么? JVM正在寻找连续的内存段,但找不到足够的空间。 垃圾收集器可以尝试删除一些未使用的引用并对内存进行碎片整理。如果在此过程之后JVM无法为list的新实例保留空
实际上,我想对对象数组列表进行排序。我正在为此目的使用可比接口。它是完全有效的,但问题是,当我排序的时候,是给这两个问题。 > 所有名字中有第一个字母大写的都在上面,所有名字中有第一个字母小写的都在下面。 所有排序的大写字母单词都在一起,然后所有的小写字母单词都在一起。
我有一个TF模型,它经过量化训练,冻结,用TOCO转换成tflite,现在我有了tflite HTML图形模型和json。 我可以看到,对于我的图中的每个张量,每个都有量化属性(min,max,scale,zero pt),我试图确定这些属性如何应用于每个张量。 例如,我理解量化数据的表示,并且我可以理解,采用量化权重/偏差,乘以比例并添加最小值会返回原始权重/偏差(几乎)。 我不明白的是: 为什
重写Compariable接口的compareTo()方法的最佳方法是什么?此外,当我们可以编写自己的compareTo()方法而无需实现时,为什么还要实现可比较的接口呢。以以下座椅类别为例: 尽管我们没有实现可比接口,但上述工作仍然有效,那么我们为什么要实现它呢?
问题内容: 经常出现在Python模块中。即使阅读了Python的文档,我也不明白它的用途以及使用时间/方式。 有人可以举例说明吗? 关于我收到的基本用法的一些答案似乎是正确的。 但是,我需要了解有关工作原理的另一件事: 对我来说,最令人困惑的概念是当前的python版本如何包含未来版本的功能,以及如何使用当前版本的Python成功地编译使用未来版本的功能的程序。 我猜想当前版本包含了将来的潜在功
问题内容: 据我所知,当我们创建一个时: JVM为此保留了内存的连续部分。当我们将新元素添加到列表中时,当元素数量达到75%时,它将保留新的连续内存部分并复制所有元素。 我们的名单越来越大。我们正在添加新对象,并且必须再次重建列表。 现在会发生什么? JVM正在寻找连续的内存段,但是找不到足够的空间。 垃圾收集器可以尝试删除一些未使用的引用和碎片整理内存。如果JVM在此过程之后无法为列表的新实例保