YuReC.CoM, с любыми классами. я такое только раз писал) вот на с++ можнов вектор дажеобычный тип запихнуть. на яве ксажелению нет. и специальных векторов для простых типов нет(( приходится вечно или заранее подсчитывать размер массива или потом писать методы перевода вектора с классом в массив с простым типом(
YuReC.CoM, работает с теми классами и интерфейсами, которые на это рассчитаны. Коллекции, разумеется, выигрывают от такой переработки очень сильно, но есть и многие другие классы, которые это используют. Можно создавать такие классы и самому. А еще можно делать общенными не только классы и интерфейсы, но и, например, отдельные методы, как в моем случае. DDDEN!SSS, а чем тебя автоупаковка/распаковка не устроила? Разве что только у тебя возникают из-за этого какие-то большие проблемы с произодительностью.
DDDEN!SSS, ты можешь спокойно писать подобные строчки: int i = 10; Integer integer = i; int j = integer + 1; К коллекциям это тоже относится, разумеется.
это я знаю. чтобы перевести вектор с Integer в массив int нужно писать целый метод с циклом, а если таких векторов еще и с доугими типами много , то писать еще больше. жаль что для этого нет стандартных функций.
DDDEN!SSS, да не надо никакие циклы писать. Есть метод Arrays.asList(), указываешь в качестве параметра свой массив и готово. Благодаря тому, что он использует generics, годится вообще для любых массивов.
DDDEN!SSS, так ты же жаловался, что на Java нельзя в обычный вектор заснуть примитивные типы. А если тебе наоборот надо, тогда советую воспользоваться вот этой штукой: commons.apache.org/lang/ . Конкретно тебе нужен класс ArrayUtils.
Malcolm, я не писал, сто в вектор не засунеш примитивный тип. я писал то, что вектор в массив с примитивным типом перегнать сложно. да и не только с примитивным типом. можно было бы сделать, чтобы вектор сам создавал массив классов T. но это приходится делать самому и пользоваться методом toArray. сторонюю либу вечно подключать мне ради этого лень(
DDDEN!SSS, как, не писал-то, вот цитата: "вот на с++ можнов вектор дажеобычный тип запихнуть. на яве ксажелению нет." В массив класса T как раз перегнать очень просто. Если тебе нужно создать новый массив, то вызываешь метод list.toArray(new Integer[0]), тут никаких сторонних библиотек не нужно.
Malcolm, ну да, обыяный тип не положиш в вектор. ты жк писал про то что компилятор сам создает обьект из примитива. с этим toarray надо самому массив создавать, а это бесит когда много раз используеш этот метод. я сделал свой метод, который сохдает массив с типом первого элемента
DDDEN!SSS, да не надо самому ничего создавать. Я же привел в предыдущем посте пример, когда метод создает необходимый массив сам. Правда, я там создал пустой массив не месте, но его можно один раз создать заранее и дальше везде указывать.
16 авг 2011 в 22:56