所以我有一个arraylist,我想我需要为编程类的插入排序算法进行排序。我有一个包含这些字符串的=(安德鲁,菲利普,胡安,卡米尔,JHON,威廉),我有这样的Java代码,这和ArrayList:在ArrayList中插入排序Java算法字符串
public void insertionSort()
{
ArrayList<Reserve> array = giveReserves();
for(int i = 1 ; i < array.size()-1; i++)
{
Reserve element = array.get(i);
String nomI = element.giveNameClient();
int j = i;
String nomJM = array.get(j-1).giveNameClient();
String nomJ = array.get(j).giveNameClient();
while(j > 0 && (nomJM.compareTo(nomJ) > 0))
{
Reserve temp = array.get(j);
array.set(j, array.get(j-1));
array.set(j-1, temp);
j = j-1;
}
}
}
所以我有了储备的的ArrayList的酒店,每个储备有做它的客户的名字。我想要做的是按客户名称对Reserve ArrayList进行排序。
所以我有打印每名客户,这样的方法:在我整理,然后进行排序之前打印客户的名称main()方法
public void showNames()
{
for(Reserve x: reserves)
{
System.out.print(x.giveNameClient() +" ");
}
}
。顺便说一句储备的数组列表是在一个名为测试类。
public static void main(String args[])
{
Test object = new Test();
System.out.println("Names: ");
object.showNames();
object.insertionSort();
System.out.println();
System.out.println("after sorting: ");
object.showNames();
}
现在,当我编译此,我得到如下:
Names:
Juan Jhon Camil William Andrew Felip
after sorting:
Andrew Camil Jhon Juan William Felip
的事情是,输出应该是安德鲁·卡米尔菲利普JHON胡安威廉
感谢。
检查你的循环条件。你忽略了列表中的最后一个元素 – Eran
是的我知道我忽略了最后一个元素,但我不明白为什么 – ravelinx
请参考[this](http://webthanga.blogspot.in/2016/02/generic-type-insertion -sort-this-below.html)对于通用插入排序 – Thanga