![]() |
Тип RECORD
Здравствуйте!
Как в Java реализуется тип, аналогичный типу запись (RCORD) в языке Pascal? Хотя бы как такой тип на Java называется?.... |
Цитата:
Записи в Паскале нужны для хранения набора данных разных типов, если я правильно понимаю. Паскаль не объектно-ориентированный язык, поэтому для такой задачи ему требуется специальная структура - Record. А в Java любой класс может хранить набор гетерогенных данных. Например, можно написать так: class MyRecord { public static int X; public static String Y; public static double Z; } И обращаешься к нему как к записи в Паскале: MyRecord.X = 1; MyRecord.Y = "xxx"; Или если не хочешь глобального доступа, тогда так: class MyRecord { public int X; public String Y; public double Z; } MyRecord myRecord = new MyRecord (); myRecord.X = 1; myRecord.Y = "xxx"; myRecord.Z = 2.2; Вот тебе и аналог простой записи. Если немного поднапрячься, можно реализовать аналог вариантной записи. Когда у нас есть классы, необходимость в записях как таковых отпадает начисто. |
Спасибо! Я написал таким образом сортировку простым (прямым) выбором:
Код:
public class Element { |
Цитата:
Поехали дальше :) static в данном контексте вообще не требуется. Более того, сортировка не получится, потому что static поля являются глобальными по отношению ко всему классу, то есть для каждого экземпляра класса их значение всегда будет одним и тем же. Сравнивать так: if (a[j].Кey < a[jmin].Кey) нельзя, потому что Key у тебя String, а не число. И вообще кey у тебя с маленькой буквы, а в Java в отличие от Паскаля идентификаторы чувствительны к регистру. key и Key - разные вещи. Для пары "ключ - данные" есть специальные типы, например HashMap, и свой собственный тип создавать не надо. В HashMap, например можно добыть данные по ключу, получать список ключей и много ещё чего полезного там есть. Для сортировки в принципе не требуется писать специальных методов, в Java есть встроенные механизмы. Например, вот - http://www.javaportal.ru/java/articles/sort.html Вроде всё. :) |
Цитата:
Цитата:
А как тогда строки сравнивать? О.о (допустим, передо мной стоит задача сравнить две переменные типа String). Цитата:
P.S.> А на C# алгоритм сортировки сильно отличаться будет? Чем там заменятся записи и классы? Хотелось бы пару умных ссылок, где можно было бы про это коротко и внятно прочитать.. а то время поджимает >_<" |
Цитата:
Цитата:
Если что-то другое, то.. не знаю. Как "Вася" сравнить с "Петя"? Тут разный подход возможен.. :) Можно сравнивать в алфавитном порядке так: a[j].Key.compareTo(a[jmin].Кey), но подробно про этот метод снова стоит почитать в документации. Цитата:
Цитата:
Цитата:
|
А как быть с сортировкой двоичным деревом? Там ведь указатели вида t^.key .... На что их заменить в C#?
К сожалению, ключи у меня содержат буквы и цифры :( |
Цитата:
Цитата:
|
Обычное лексикографическое упорядочивание по алфавиту вида:
Andrey Kolya1 Kolya22 Laurinas Vasyapupkin Warezov ... Судя повсему метод String.Compare(str1, str2, false) в C# и str1.compareTo(str2) в Java мне подходит... Я переписал процедуры с использованием этого метода. http://msdn.microsoft.com/ru-ru/library/885e1sy1.aspx (C#) Теперь надо ломать голову над TreeSort... оказывается это чудо в википедии всё-таки описано... http://ru.wikipedia.org/wiki/Сортиро...оичного_дерева осталось ээ... вдуматься в код ^_^ |
Я не совсем понял что мы тут делаем:
Код:
public Tree(int k) { // конструктор с инициализацией ключа |
Время: 15:50. |
Время: 15:50.
© OSzone.net 2001-