如何对无序链表进行排序

时间:2017-02-23 18:31:36

标签: java arrays

您好我需要使用选择排序对此无序链接的对象列表进行排序。但我需要将无序列表转换为数组以使用排序,我不知道如何设置它。然后我需要将数组添加回无序链表。这是我的代码

LinkedUnorderedList <games> c1 = new LinkedUnorderedList <>();
// stack for the code 3
LinkedListStack <games> transactions = new LinkedListStack <games> ();
//Stack for the copy
ArrayStack <games> copyA = new ArrayStack <games> ();

Scanner fileScan = new Scanner(new File("input.txt"));
int code;
String name;
String rt;
String dev;
int year;
games obj;
games tobj;

while(fileScan.hasNext())
{    
    code = fileScan.nextInt();
        if(code == 3)
        {    
            name = fileScan.next();
            dev = fileScan.next();
            year = fileScan.nextInt();
            rt = fileScan.next();
            tobj = new games(name,dev);
            transactions.push(tobj);
        }    
        else
        {    
            name = fileScan.next();
            dev = fileScan.next();
            //System.out.print("hello");
            year = fileScan.nextInt();
            rt = fileScan.next();
            obj = new games(name,dev,year,rt);
            c1.addToRear(obj);
        }
} 
System.out.print(c1.toString());
Iterator <games> cpy = c1.iterator();
games element;
while(cpy.hasNext())
{
    element = cpy.next();
    copyA.push(element);

} 
cpy = c1.iterator();
    while(cpy.hasNext())
    {
    info += cpy.next();
    }    

String ar [] = new String [c1.count];
for(int index = 0; index < c1.count;index++)
{
    ar[index] = c1[index];
} 

1 个答案:

答案 0 :(得分:0)

您的问题实际上只询问如何在数组和列表之间进行转换,而不是如何对它们进行排序。下面是Java标准库关于将列表转换为数组的一些指示,反之亦然。

Java Collections框架中的所有集合(所有形式的列表和其他集合)都有一个方法toArray(),它将集合转换为数组。

框架的另一个有用部分是Collections类。它有一个addAll()方法,接受Collection和一个数组,并将数组中的元素添加到集合中。

使用数组时,您需要熟悉方便的Arrays类。它提供的一个方便的方法是asList(),它返回一个List实现,它包含你提供的数组中的所有元素。这可能很有用,例如,与所有集合都具有的addAll()结合使用。