Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2007 19:38:00

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

Общался с коллегой по джабберу и мне в голову пришёл один пример.

У нас есть массив с некоторым количеством элементов. Любых, не важно каких.
Задача: Нужно взять случайный элемент.

PHP:

$arr = array('a', 'b', 3, 99, 'preved', 'medved');
$res = $arr[mt_rand(0, count($arr)-1)];
Python:
arr = ['a', 'b', 3, 99, 'preved', 'medved']
res = random.choice(arr)
Java:
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)

Офлайн

#2 Фев. 19, 2007 20:30:11

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

в питоне еще import random надо сделать :)



Офлайн

#3 Фев. 19, 2007 20:31:42

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

j2a
в питоне еще import random надо сделать :)
Ну импорты я опустил. В Java тоже нужно делать импорт.



Офлайн

#4 Фев. 19, 2007 20:44:14

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

Я не знаю кто писал код на Java, но он однозначно не правилен.



Офлайн

#5 Фев. 19, 2007 20:50:16

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

alafin
Я не знаю кто писал код на Java, но он однозначно не правилен.
Код писал знакомый Java-программер. Сам-то я в жабе не шарю.
А что не правильно?



Офлайн

#6 Фев. 19, 2007 20:52:34

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, 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);
}
}



Офлайн

#7 Фев. 19, 2007 21:01:57

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

Вот узнал у граммотного человека:

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);
}
}



Офлайн

#8 Фев. 19, 2007 21:02:49

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

В Java так как и в C# код должен обязательно заключаться в классы и должна быть в одном из них точка входа:
public static void main(String args)
а import-ы необязательны, можно указывать полное имя пакета для класса и все будет работать, как я показал выше.



Офлайн

#9 Фев. 19, 2007 21:08:37

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

Mkdir
В этом коде как минимум 1 лишний импорт junit.framework.TestCase; (на сколько я знаю junit - относится к юнит тестам) и одно лишнее наследование extends TestCase (судя по всему этот код просто выдрали с какого-то проекта) , а так код в полне рабочий, только вот нужно заменить public void testArray() на public static void main(String args) . Ладно не будем в даваться в дебри т.е. в Java ;)



Офлайн

#10 Фев. 19, 2007 21:12:06

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

Наглядность кода PHP, Python, Java

alafin
Ладно не будем в даваться в дебри т.е. в Java ;)
+1. Java как язык и без того страшен. Еще не хватало посвящать ужасам Java этот замечательный форум :-)
А то народ распугаем.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version