Java People - Критична оценка

21 отговора 0 прегледа
#1

Java People - Критична оценка

Имам един реално доста тъп тест кой език как е.
псевдокод:

%w{word1 word2 word3 woRd2 Word3 WORD2}.
inject(Hash.new(0)) { |words, word| words[word.upcase] += 1; words }.
sort { |a, b| b[1] <=> a[1] }.
each { |word, count| puts "#{word} occurs {count} time(s)." }


Най-доброто което постигнах на Java:

import java.util.*;

class WordCount {
public static void main(String[] args) {
String[] list = {"word1", "word2", "word3", "woRd2", "Word3", "WORD2"};

Map<String, Integer> words = new HashMap<String, Integer>();
for (String word: list) {
String upper = word.toUpperCase();

words.put(upper, ((words.containsKey(upper)) ? words.get(upper) : 0) + 1);
}

List<Map.Entry<String, Integer>> sorted = new ArrayList<Map.Entry<String, Integer>>(words.entrySet());
Collections.sort(sorted, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> a, Map.Entry<String, Integer> b) {
return b.getValue() - a.getValue();
}
});

for (Map.Entry<String, Integer> entry: sorted) {
System.out.printf("%s occurs %d time(s).\n", entry.getKey(), entry.getValue());
}
}
}


Кое не усещам, кой фреймуърк ми се губи?

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #2

Re: Java People - Критична оценка

Хеш(хм?) траверса до масив е малко мръсно тука, нищо... ще се оправи в 1.9, там хешовете са подредени. Що да е псевдокод? Тва псведоезик ли е ;).

П.п. И аз ръгам %w, ама после се мразя. Но предполагам си го тикнал за допълнителна тръпка.

Отговор
в отговор на Eвлaмпи Пoпдимитpoв #3

Re: Java People - Критична оценка

Ръби-то ли е псевдоезика вече :)

--
One day it will make sense.
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #4

Re: Java People - Критична оценка

Чакаме сега и едни перформанс тестове да направиш. Видя се че като код ръгбито бие , ама заради едното бързо кодене не си заслужава.

Редактирано от cristal_reaver на

Отговор
в отговор на Eвлaмпи Пoпдимитpoв #6

Re: Java People - Критична оценка

Айде и от мене, че ми омръзна да отговарям на мейли, па и време за лягане. Нещо джаваскрипта не ги чатка хештаблиците/асоциативните много много със сорта и още един масив ми трябваше. Ако се поровя в плъгините на jQuery-то може и най-вероятно като Ръби да стане.


<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
var hash = [], uniqueWords = [];
$.each(["word1", "word2", "word3", "woRd2", "Word3", "WORD2"],
function(i, word) {
var upperCase = word.toUpperCase();
hash[upperCase] = hash[upperCase] ? hash[upperCase] + 1 : 1;
hash[upperCase] > 1 ? {} : uniqueWords.push(upperCase);
});

uniqueWords.sort(function(a, b) { return hash[ b] - hash[a]; });
$.each(uniqueWords, function(i, v) { alert(v + " occurs " + hash[v] + " time(s)") });
</script>


--
One day it will make sense.

Редактирано от Гypy на

Отговор
в отговор на Eвлaмпи Пoпдимитpoв #7

Re: Java People - Критична оценка

TreeSet от твой pod, който държи string-a + count-а и къстъм компаратор?

Отговор
в отговор на Eвлaмпи Пoпдимитpoв #8

Re: Java People - Критична оценка

D:\stuff>java Test
WORD2 occurs 3 time(s).
WORD3 occurs 2 time(s).
WORD1 occurs 1 time(s).

Нещо не мяза на сортирано.

П.С. А, то се сортирало по числото, сори.

Редактирано от Pekoнcтpykтop на

Отговор
в отговор на Eвлaмпи Пoпдимитpoв #9

Re: Java People - Критична оценка

words = {"word1", "word2", "word3", "woRd2", "Word3", "WORD2"};
Sort[Tally[ToUpperCase[words]], #1[[2]] > #2[[2]] &]

Верно е бая тъп теста.

Сега да сравним динята и зелевата чорба по дължината на използваната тоалетна 'артия?

Отговор
в отговор на :q #10

Re: Java People - Критична оценка

1.9 е хавата - insertion order хеша е най-малкото. стартъпа е се едно съм го писал на си. отделно -> {} чекията е брутална + мега часния случай (99(%)), когато ключовете на опциите са Symbol e handy. %w + $ променливите са жестоки - $: се пише - не $LOAD_PATH :)

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на Гypy #11

Re: Java People - Критична оценка

JS е екстра, примерно аз на WSH бих го написал така:

<job id='job1'>
<script language='JScript' src='JSH.js'></script>

<script language='JScript'>
['word1', 'word2', 'word3', 'woRd2', 'Word3', 'WORD2'].
groupInvoking('toUpperCase').
sortDescendingPicking('length').
each(function (entry) { puts(entry.key + ' occurs ' + entry.length + ' time(s).'); });
</script>
</job>



Харесва ми как се краде масово между езиците, примерно в дотнета се набляга сериозно на улеснен ком интероп, ама айдиспач в уинапи от извесно време - кур, сигурно е случайно де, то иначе секи глупак ше издялка CreateObject('UIRibbon') и бизнеса умре :)

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на 2am #12

Re: Java People - Критична оценка

Теста определено е тъп. Просто е един вид да заемеш станс, евентуално да си подготвен, първия ред търси литерал - лесно ли е, директно обект ли дава, втория ред (технически не пречи да е group_by(&:upcase)) търси как поредица я мачкаме към нещо друго, това ако го има е ОГРОМНО. Сорта наобратно проверява код като параметър - това даже Си го може. Аутпута търси интерполация - принтф е могъщо, но директно да ембедваш неща в стринг е супер.

PS: това на какво е?

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на Гypy #13

Re: Java People - Критична оценка

"hash[upperCase] > 1 ? {} : uniqueWords.push(upperCase);"

брутално :))

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #14

Re: Java People - Критична оценка

:) Зле, ама като за шоуто - става. Държавния сорт в джаваскрипта нещо не се хареса с хеша, та затова този екстра масив.

Па може и нещо да не съм го донагласил, аз пишман програмист станах, че във фирма от 10 човека 1 само можеше да програмира и се наложи да съм втория и така.

--
One day it will make sense.
Отговор
в отговор на Гypy #15

Re: Java People - Критична оценка

Бе аз се радвам на вторите. Примерно, Манкузо трудно ше ме навие да и откажа

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на Гypy #16

Re: Java People - Критична оценка

Между другото - като ти се удава гугъл аналитикс примерно или нещо такова - избий рибата - тъпоча е по модата - както плюе - дваж по-усърдно лиже. Добре, че мада нейча ме е издялкала куха лейка и съм сравнително защитен :)

def toggle(what) send("#{what}=", !send("#{what}?")); self end
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #17

Re: Java People - Критична оценка

массаракш, обърка се света, във бгдев говорят за заплати, а тука за кодене.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на Eвлaмпи Пoпдимитpoв #18

Re: Java People - Критична оценка

Манкузо нема да я върнем особено както е с тези обувчици на снимката долу, да - да живеят вторите:

[линк]

И Вон не бих я върнал, но не е толкова луда да си показва гащите публично, а това на мене стои високо в ценностната ми система.

--
One day it will make sense.
Отговор
в отговор на Гypy #19

Re: Java People - Критична оценка

[линк]

Е верно са уж бански, а не гащи

A man only sees what he wants to see...
Отговор
в отговор на naja_haje #20

Re: Java People - Критична оценка

Важи! Макар че на скиорките задните им части са най-атрактивни... но все пак много добро попадение, мерси.

--
One day it will make sense.
Отговор