Есть код, помогите разобраться

Модератор: Absurd

Ответить
tulip_sky
Сообщения: 2
Зарегистрирован: 28 янв 2007, 02:35

Помогите, пожалуйста, разобраться :confused:

Код: Выделить всё

import java.util.List;
import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;

public class TestArray {
    public static void main(String[] args) {
        
        [B]if (args.length == 0) {
            args = new String[2];
            args[0] = "10";
            args[1] = "100";
        }
        
        int itemsCount = Integer.parseInt(args[0]);
        int maxRandomValue = Integer.parseInt(args[1]);  [/B]
   
        List myList = new ArrayList();
        Random myRandom = new Random();
        
        for (int i=0; i<itemsCount; i++) {
            [B]myList.add(myRandom.nextInt(maxRandomValue));[/B]
        }
        
        System.out.println("Filled:   " + myList);
        
        Collections.sort(myList);
        System.out.println("Sorted:   " + myList);
        
        Collections.shuffle(myList);
        System.out.println("Shuffled: " + myList);
    }
    
}
не врубаюсь в то, что выделено :(
Chester
Сообщения: 60
Зарегистрирован: 06 дек 2004, 10:46
Откуда: Kyiv, Ukraine
Контактная информация:

if (args.length == 0) {
args = new String[2];
args[0] = "10";
args[1] = "100";
}

int itemsCount = Integer.parseInt(args[0]);
int maxRandomValue = Integer.parseInt(args[1]);

Тебе из командной строки должный прийти 2 строковых параметра в качастве массива String args[]
Если их нету - то создается новый массив с 2-мя элементами: "10","100"
Далее переменной itemsCount присваивается значение первого элемента массива, приведенное к типу int - Integer.parseInt(...)
Ну и соответственно maxRandomValue получает интовое значение след. элемента массива.

Далее в создается новый List в который добавляется в цикле 10 (itemsCount) элементов,
а значениями этих елементов являются случайные ЦЕЛЫЕ числа myRandom.nextInt(maxRandomValue).

А вообще, лабораторные работы надо делать самому, и пары основам программрования не прогуливать :)
... She gave me something, it was a mushroom...
tulip_sky
Сообщения: 2
Зарегистрирован: 28 янв 2007, 02:35

Спасибо за помощь!!!! :)
и пары основам программрования не прогуливать
а кто сказал, что я пары прогуливала???
mobius
Сообщения: 157
Зарегистрирован: 25 янв 2005, 18:42
Откуда: Минск
Контактная информация:

Кстати, учти, что если там не число будет схлапочешь NumberFormat Exception:
Лучше так юзать:

import java.util.List;
import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;

public class TestArray {

private static final int defItemsCount = 10;
private static final int defMaxRandomValue = 100;

public static void main(String[] args) {

itemsCount = defItemsCount;
maxRandomValue = defMaxRandomValue ;

if (args.length >= 2) {
args = new String[2];
args[0] = "10";
args[1] = "100";
}

try{
itemsCount = Integer.parseInt(args[0]);
maxRandomValue = Integer.parseInt(args[1]);
} catch (NumberFormatException ex){
System.out.println("Аргументы должены быть числовыми");
System.exit();
}


List myList = new ArrayList();
Random myRandom = new Random();

for (int i=0; i<itemsCount; i++) {
myList.add(myRandom.nextInt(maxRandomValue));
}

System.out.println("Filled: " + myList);

Collections.sort(myList);
System.out.println("Sorted: " + myList);

Collections.shuffle(myList);
System.out.println("Shuffled: " + myList);
}

}

Вот, вроде так правильней....
Не не проверял как работает :)
Ответить