?

Log in

No account? Create an account

Entries by category: it

Java
uralpanda
Изучаю java по комиксовой книжке O'Reilly.
Я на пятом уроке, дело иногда замедляется, потому что любопытство меня толкает на поиски того, чего в книжке на пятом уроке не имеется.
К примеру, выяснилось, что задача генерации уникальной случайной последовательности в java решается очаровательно - есть конструкция "множество", в которой элементы уникальны, так что достаточно туда рандомно напихать элементов до нужного количества, причём дубликаты просто автоматически не будут добавлены. Например нам надо создать множество из трёх элементов с рандомными, но уникальными числами:

import java.util.*;
public class SimpleDotComTestDrive {
public static void main (String[] args) {
HashSet<Integer> myHashSet = new HashSet<Integer>();
for (int i=0; i<=1000; i++) {
myHashSet.add((int)(Math.random()*7));
if (myHashSet.size()==3) {
break;
}
}
Вообще очень легко изучается, хотя синтаксис непривычен, Сишный синтаксис я в студенческие времена не любила. Но есть ощущение, что вещь функциональная и мощная.

Upd. используя этот же паттерн с множеством подкрутила учебную программку, чтобы не учитывать попытку ввода, если число повторяется. Это игра в морской бой, и если пользователь повторяет числа, то не нужно увеличивать счётчик. Очень просто и изящно

import java.util.*;
class SimpleDotCom {
int[] locationCells;
int numOfHits=0;
boolean notsame;
HashSet<Integer> myHashSet = new HashSet<Integer>();
public void setLocationCells(int[] locs) {
locationCells=locs;
}
public String checkYourself (String stringGuess) {
int guess=Integer.parseInt(stringGuess);
String result="Мимо";
for (int cell:locationCells) {
if (guess==cell) {
result="Попал";
notsame=myHashSet.add(guess);
if (notsame==true) {
numOfHits++;
}
break;
}
}
if (numOfHits==locationCells.length) {
result="Потопил";
}
System.out.println(result);
return result;
}
}

Upd2. дочитала до того места, где авторы предлагают решение. Оказалось, что они используют неограниченный массив ArrayList, и выкидывают из него элементы, когда пользователь в них попадает. Неограниченный массив впечатлил, но моё решение лучше! Потому что оно оставляет в неизменности исходные данные (набор ячеек) :))))

Лекция по блокчейну
uralpanda
Стараемся понять, зачем нужна эта нелетающая массивная штука :)

Дэниэл Клауд Кампос
uralpanda
Нашла прекрасное - Клауд Кампос продолжил тему уборки в рекламе Cillit Bang :)


Какой он забавный, я его добавила себе в Инста для настроения :)))


А вот ещё реклама планшетов Microsoft Surface с очаровательным бибоем Кампосом