我有下面的代码片段,它只是将新元素添加到结尾,但我希望能够添加按字母顺序排列的每个新元素按目的地名称排序。不知道我是否需要在添加后对列表进行排序,或者先插入新对象,然后再添加它。在任何一种情况下都不确定如何去做。执行按顺序(按字母顺序)添加在对象的java数组
public void add()
{
int newRating =-1;
in = new Scanner(System.in);
if((lastElement+1) < MAX_ELEMENT) //MAX_ELEMENT =100
{
System.out.print("Enter the Name: ");
newDestination = in.nextLine();
System.out.print("Enter the type of Vacation(Single character code: ");
validCharacterCode();
while(newRating < MIN_RATING || newRating > MAX_RATING)
{
System.out.print("Enter the Rating(1-5): ");
newRating = in.nextInt();
}
lastElement++;
aDestination[lastElement] = new Destination(newDestination,newVacationType,newRating);
}
else
{
System.out.print("Cannot add new elements: ");
System.out.println("List already has " + MAX_ELEMENT + " elements.");
}
}
如果您选择插入你的元素,然后将所得数组进行排序,我建议你插入排序,它具有良好的性能,当列表已经将近排序(这是你的名单将是)。 –
如果你不想自己实现排序,你可以看看'Arrays.sort',但是你将不得不实现一个'Comparator'。 –
谢谢,我想实现我自己的排序和插入排序听起来像我要去的。但我不知道如何去做这件事。我只是一个初学者,我想通过每个元素来检查每个目标值的第一个字符并进行相应的排序,但这听起来有点复杂,我认为 –