Java 根据照片属性按字母顺序排列照片阵列列表
我已经搜索了这个网站,找到了很多资源,没有一个能回答这个问题。考虑阅读前的投票或标记重复。 我不能使用比较器接口或Java 根据照片属性按字母顺序排列照片阵列列表,java,sorting,arraylist,Java,Sorting,Arraylist,我已经搜索了这个网站,找到了很多资源,没有一个能回答这个问题。考虑阅读前的投票或标记重复。 我不能使用比较器接口或.sort() 我有一个名为“photoAlbum”的照片对象的ArrayList,如下所示ArrayList photoAlbum=new ArrayList()其中每个照片对象都包含一个名为photopername的字符串属性。我需要使用photopername属性按字母顺序对照片对象进行排序。我知道我可以使用冒泡排序或交换排序,但如何根据每个照片photorname属性对Pho
.sort()
我有一个名为“photoAlbum”的照片对象的ArrayList,如下所示ArrayList photoAlbum=new ArrayList()
其中每个照片对象都包含一个名为photopername
的字符串属性。我需要使用photopername
属性按字母顺序对照片对象进行排序。我知道我可以使用冒泡排序或交换排序,但如何根据每个照片photorname
属性对Photo相册ArrayList中的照片对象本身进行排序
仅仅是提示或一般的例子将是难以置信的感激
PS我不允许使用比较器
接口或排序
方法。尝试以下方法:
Collections.sort(your array list object, new comparator());
public class CustomComparator implements Comparator<Your Array List> {
@Override
public int compare(ClassObj o1, ClassObj o2) {
return String.valueOf(o1.getName()).compareTo(String.valueOf(o2.getName()));
}
}
Collections.sort(数组列表对象,new comparator());
公共类CustomComparator实现了Comparator{
@凌驾
公共整数比较(ClassObj o1,ClassObj o2){
返回String.valueOf(o1.getName()).compareTo(String.valueOf(o2.getName()));
}
}
或者试试这个逻辑:
import java.util.*;
public class BubbleSort {
public static void main(String[] args) {
String l[]={"ABCD" , "XYZ" , "DEF" , "PQR"};
BubbleSort(l);
for(int i=0; i<l.length; i++)
{
System.out.println(l[i]);
}
}
private static void BubbleSort(String[] array) {
String t;
for(int i=0; i<array.length; i++) {
for(int j=0; j<array.length-1-i; j++) {
if(array[j].compareTo(array[j+1])>0) {
t= array[j];
array[j] = array[j+1];
array[j+1] = t;
}
}
}
}
}
import java.util.*;
公共类泡泡糖{
公共静态void main(字符串[]args){
字符串l[]={“ABCD”、“XYZ”、“DEF”、“PQR”};
泡泡糖(l);
对于(inti=0;i您可以创建一个方法
public static comparePhotos(Photo a, Photo b) {
return a.photographerName.compareTo(b.photographerName);
}
然后,在排序算法中要比较照片的任何位置:
而不是这样做:
if(photo1 < photo2) //this wouldn't work
if(photo1
你可以:
if(comparePhotos(photo1, photo2) < 1)
if(比较照片(照片1,照片2)<1)
如果photo1,则comparePhotos将返回负值。摄影师姓名小于photo2。摄影师姓名,0如果他们相等,则返回正值如果photo1。摄影师姓名大于photo2。摄影师姓名有两个可能性:
Photo类将实现接口,您将在Photo类中实现compareTo
方法。然后您只需调用Collections.sort(photoAlbum);
您将实现自己的并调用Collections.sort(photoAlbum,comparator);
。这样,您就不需要修改Photo类
编辑:如果你不能使用这个,就实现你最喜欢的排序算法。或者看看排序函数的Java实现。cough:ComparatorI我在寻找实际的排序算法,我不能使用.sort()
。这是一门大学课程。请检查编辑后的答案,将arraylist对象传递到数组中。您自己尝试搜索重复项有多困难?我相信这是的重复项,是的,我读过您的问题和那个问题。我不被允许实现比较器接口。这不是您的错,但我对那些先做一个作业,然后禁止学生以正确的方式做作业。他们希望我们了解使用排序算法的基本原理。我同意。为什么这种情况总是发生在我身上。请删除重复标记,以便人们真正查看我的问题。请。我想这就是learni和ng计算机编程和学习计算机科学。我在1990年获得了第一份编程工作,但我不了解排序算法的基本原理。你可能使用的每种语言都有一些相当于的集合。排序,只有在非常有限的一组应用程序中,仅仅使用它是错误的。LOL.如何在没有比较仪的情况下拥有比较仪。+1让我微笑。