Re: Java: Array[] и ArrayList

htaed

Люди! У меня в ArrayList лежит набор целых чисел:
int[] a = {2,4,5,6,7,8};
ArrayList al = new ArrayList;
al.add(a);
1. Как мне из этого ArrayList получить i-ое значение?
2. Как сравнить элементы k и m из ArrayList?

nikita270601

У меня тоже, к сожалению.

htaed

Дело в том, что у меня сейчас нет интернета...

nikita270601

В общем, нужно использовать метод get(int) у ArrayList'а.
А для сравнения операции сравнения целых чисел <, <=, =, >=, >.
А, ещё потребуется Object, который ты достанешь из ArrayList'а, преобразовать в Integer, и вызвать у Integer'а метод getValue. Вот такая вот она уебищная, эта Java.

nikita270601

Хотя можно не делать intValue а воспользоваться методом сравнения compareTo(Integer).

htaed

Пишу в цикле
int value = Integer.parseInt(list.get(i;
int last = 5;
compareTo (5, value);
В чём ошибка?

nikita270601

parseInt читает строку и пытается разобрать, что за число в ней написано.
А тебе надо
int value = Integer)list.get(i.intValue;

htaed

или вот так:
int value = Integer.parseInt(list.get(i;
int last = 5;
last.compareTo (value);
Я просто в первый раз это делаю.

htaed

А как дальше compareTo применять?

htaed

почему этот код:
int last = list.size;
System.out.println(last);
возвращает значение 1, если в list по идее лежит массив N целых чисел?

htaed

Я пишу так:
int[] a = {2,4,6,7,8,9};
ArrayList list = new ArrayList;
list.add(a);
int razmer = list.size;
System.out.println(raxmer);
Возвращается значение 1. Как это понимать?

Hastya

Смешной тред, молодцы. Ботать auto-boxing.
Правильный код:
int[] a = { 1, 2, 3 };
System.out.println(Arrays.asList(a).size;

htaed

Да, я уже сам здесь ухахатываюсь)
Я предполагаю, что в случае моего кода ArrayList принимает целый массив за свой 1 элемент, поэтому возвращается число 1. Верно?

nikita270601

Да.

htaed

что такое auto-boxing?
Где мне можно найти список готовых простых программ на Java, иллюстрирующих множество возможностей этого языка программирования? Например, маленькая программа, которая показывает всё, на что способен ArrayList. По-моему, неплохо!)

nikita270601

Ботать auto-boxing.
А если у него Java < 1.5?

nikita270601

Рекомендую прочитать какую-нибудь книжку.

htaed

Книжек у меня много разных, но не все они подходят. Мне нужен бы именно набор таких программ, на примере которых я мог бы писать свои. Эта штука:
int[] a = { 1, 2, 3 };
int razmer = Arrays.asList(a).size;
почему-то выдаёт волнистое подчёркивание:
cannot find symbol; symbol : variable Arrays, location: class stady.example at line 23 (23:22)
хотя я всё импортировал, что надо, а именно :
import java.util.Arrays.*;
import java.util.*;
У меня jdk 1.4.

Svyatogor

А причем здесь автобоксинг? Интересно вот, кого и куда?

Svyatogor

Что значит "правильный"? Изначальный код то же самое давал.

import java.util.Arrays;

public class ta {
public static void main(String [] args) {
int[] a = { 1, 2, 3 };
System.out.println(Arrays.asList(a).size;
}
}

дает в результате 1.

C:\Documents and Settings\max>javac -version
javac 1.5.0_06
C:\Documents and Settings\max>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

Сами то проверяли? asList в данном случае идет от int[][] по той простой причине, что в 1.5 сигнатура у него asList(T ... а T не может быть простым типом, в этом случае компилятор считает, что значение от одного аргумента типа int[].

Hastya

да, надо было Integer[] a

Svyatogor

А полностью пример кода? Когда до 1.4 доберусь, сам посмотрю, но там вроде бы всё равно не такая ошибка должна быть.
Книжки прочитать все равно стоит, чтобы вначале понять, что и как в языке происходит, а потом уже смотреть возможности использования различного API. Иначе будет куча кода "по аналогии", при взгляде на который волосы встают дыбом
Кстати, согласно http://java.sun.com/j2se/1.4.2/docs/api/java/util/Arrays.htm... приведенный вами код всё равно работать не будет (в 1.4) так как нет метода, перегруженного для массива int[], а массив int[] к Object[] не приводится.
Если нужен ArrayList - нужно создать и заполнить элементами из массива вручную.

durka82

Кроме SDK стоит ставить и help к нему.
А проги типа Идеи еще и поддерживают контекстную справку по нему
Оставить комментарий
Имя или ник:
Комментарий: