Collections.sort()图片排序
时间: 2024-02-05 21:36:52 浏览: 80
可以使用`Collections.sort()`方法对图片进行排序。需要先将图片存储在一个`List`集合中,然后实现`Comparator`接口来比较图片的大小,最后调用`Collections.sort()`方法进行排序。
以下是一个示例代码:
```java
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.imageio.ImageIO;
public class ImageSorter {
public static void main(String[] args) {
List<File> imageFiles = new ArrayList<File>();
File dir = new File("path/to/directory");
for (File file : dir.listFiles()) {
if (isImage(file)) {
imageFiles.add(file);
}
}
Collections.sort(imageFiles, new ImageComparator());
for (File file : imageFiles) {
System.out.println(file.getName());
}
}
private static boolean isImage(File file) {
String name = file.getName().toLowerCase();
return name.endsWith(".jpg") || name.endsWith(".jpeg") || name.endsWith(".png");
}
private static class ImageComparator implements Comparator<File> {
public int compare(File f1, File f2) {
try {
BufferedImage img1 = ImageIO.read(f1);
BufferedImage img2 = ImageIO.read(f2);
int size1 = img1.getWidth() * img1.getHeight();
int size2 = img2.getWidth() * img2.getHeight();
return Integer.compare(size1, size2);
} catch (IOException e) {
e.printStackTrace();
return 0;
}
}
}
}
```
在上面的示例中,我们定义了一个`ImageComparator`类实现`Comparator`接口,比较两个图片的大小(像素数)。然后,我们将所有图片的文件存储在`List<File>`集合中,并调用`Collections.sort()`方法进行排序。最后,我们遍历排序后的集合并输出图片的文件名。
阅读全文