Conversation
dsavvinov
left a comment
There was a problem hiding this comment.
Неплохая работа. Валидации инпута нет, но из-за того, как устроено внутри дерево, не совсем и понятно, как валидировать (кроме как с помощью checksum)
10б, зачтено
| @@ -0,0 +1,140 @@ | |||
| package hw1; | |||
|
|
|||
| import com.sun.istack.internal.Nullable; | |||
There was a problem hiding this comment.
Не те аннотации. Можно брать, например, из пакета org.jetbrains.annotations
There was a problem hiding this comment.
А, это вообще не тот код. Не надо так, пожалуйста.
| @@ -0,0 +1,31 @@ | |||
| package hw2; | |||
|
|
|||
| public interface Dictionary { | |||
There was a problem hiding this comment.
Почему в этом pull request эти файлы?
| final Node[] children = new Node[ALPHABET_SIZE]; | ||
| boolean isTerminal = false; | ||
| int numberOfSubTerminals = 0; | ||
|
|
| public class TrieImpl implements Trie, StreamSerializable { | ||
| private Node root; | ||
|
|
||
| private static int charToInt(char ch) { |
There was a problem hiding this comment.
Minor: я бы предложил такой метод положить в конец класса, т.к. это явно не то, что читатель кода хочет увидеть в первую очередь.
| } | ||
|
|
||
|
|
||
| static class Serializer { |
There was a problem hiding this comment.
👍
Пока что единственный человек, который вынес сериализацию/десериализацию в отдельный класс (что я поддерживаю, т.к. функционал сериализации/десериализации как бы немного "сбоку" от основного функционала ноды)
|
|
||
|
|
||
| if (type == -1) { | ||
| throw new hw3.SerializationException(); |
There was a problem hiding this comment.
Здесь хорошо бы добавить сообщение, объясняющее, что стряслось и как с этим жить.
|
|
||
| static void serialize(Node node, OutputStream out) throws IOException { | ||
| if (node == null) { | ||
| out.write(new byte[]{NULL_NODE}); |
There was a problem hiding this comment.
FYI, у OutputStream есть перегрузка write, которая собственно пишет ровно один байт. Она, правда, почему-то принимает int, (вероятно, потому, что часто имплментация этого метода уходит в native, а в JVM нет байтов, только инты) но пишет только 8 нижних бит (т.е. можно просто кастовать byte к int и передавать в тот метод)
@dsavvinov