Форум сайта python.su
Общался с коллегой по джабберу и мне в голову пришёл один пример.
У нас есть массив с некоторым количеством элементов. Любых, не важно каких.
Задача: Нужно взять случайный элемент.
PHP:
$arr = array('a', 'b', 3, 99, 'preved', 'medved');
$res = $arr[mt_rand(0, count($arr)-1)];
arr = ['a', 'b', 3, 99, 'preved', 'medved']
res = random.choice(arr)
List lst = new ArrayList(112, 576, 232, 652, 992);
int num = Random.instance().new(lst.size());
Object obj = lst.get(num);
Отредактировано (Фев. 19, 2007 20:31:03)
Офлайн
в питоне еще import random надо сделать :)
Офлайн
j2aНу импорты я опустил. В Java тоже нужно делать импорт.
в питоне еще import random надо сделать :)
Офлайн
Я не знаю кто писал код на Java, но он однозначно не правилен.
Офлайн
alafinКод писал знакомый Java-программер. Сам-то я в жабе не шарю.
Я не знаю кто писал код на Java, но он однозначно не правилен.
Офлайн
Как минимум на Java нужно писать(то что мне в голову сразу пришло):
import java.util.*;
public class Temp {
public static void main(String args){
List lst = new ArrayList();
lst.add(112);
lst.add(576);
lst.add(232);
lst.add(652);
lst.add(992);
int num = (int) (Math.random() * (lst.size()));
Object obj = lst.get(num);
}
}
или хотябы(без импортов):
public class Temp {
public static void main(String args){
java.util.List lst = new java.util.ArrayList();
lst.add(112);
lst.add(576);
lst.add(232);
lst.add(652);
lst.add(992);
int num = (int) (Math.random() * (lst.size()));
Object obj = lst.get(num);
}
}
Офлайн
Вот узнал у граммотного человека:
import java.util.Random;
import junit.framework.TestCase;
public class ArrayTest extends TestCase{
public void testArray() {
String[] strings = {"1", "2"};
Random random = new Random();
int i = random.nextInt(strings.length);
String item = strings[i];
System.out.println(item);
}
}
Офлайн
В Java так как и в C# код должен обязательно заключаться в классы и должна быть в одном из них точка входа:
public static void main(String args)
а import-ы необязательны, можно указывать полное имя пакета для класса и все будет работать, как я показал выше.
Офлайн
Mkdir
В этом коде как минимум 1 лишний импорт junit.framework.TestCase; (на сколько я знаю junit - относится к юнит тестам) и одно лишнее наследование extends TestCase (судя по всему этот код просто выдрали с какого-то проекта) , а так код в полне рабочий, только вот нужно заменить public void testArray() на public static void main(String args) . Ладно не будем в даваться в дебри т.е. в Java ;)
Офлайн
alafin+1. Java как язык и без того страшен. Еще не хватало посвящать ужасам Java этот замечательный форум :-)
Ладно не будем в даваться в дебри т.е. в Java ;)
Офлайн