2014-09-26 5 views
0

Мне нужно сравнить время, необходимое для выполнения четырех операций над массивом, по сравнению с теми же операциями в списке. Как найти максимальное значение длины массива или связанного списка, где мне нужно только найти значение более короткого, потому что для сравнения времени, когда количество элементов должно быть равным. Поэтому мой вопрос: 1. У связанных списков есть максимальное число, потому что я знаю, что массивы - это просто Integer.MAX_INTEGER. И 2. каково это максимальное число, потому что я должен выполнить несколько тестов с равным количеством элементов с точным расстоянием между ними. Вот мой код, если это имеет значение.Максимальная длина связанного списка в java?

private static class Node{ 
private String string; 
private Node next; 
public Node(String e, Node n){ 
string=e; 
next=n; 
    } 
public String getElement(){return string;} 
public Node getNext(){return next;} 
public void setNext(Node n){next=n;} 
} 
+0

В качестве альтернативы попытке создать самый большой массив или самый большой связанный список - и, возможно, сбой - вы можете измерить другие размеры и построить кривая. –

ответ

1

Максимальное количество связанного массива зависит от объема памяти. Для Java вы можете взглянуть на размер памяти JVM, чтобы понять это. Использование пространства для обоих списков ссылок и массива одинаково. Единственное различие заключается в том, что Array требует продолжения выделения памяти, а связанного списка нет. Таким образом, в общем случае список ссылок всегда должен иметь больший размер, чем массив. (Если память вообще не распределена, то оба имеют одинаковый максимальный колпачок)

+0

Но будет ли это всегда больше, чем максимальная длина массива? – trosy

+0

@trosy Подумайте об этом так .... массив имеет максимальный размер из-за ограничения int. теоретически он мог иметь бесконечный размер, И.Е. создать список, заполнить его> max int число значений и преобразовать обратно в массив. И связанный список не имеет этого ограничения – Steve

Смежные вопросы