diff --git a/chain/src/main/java/ru/molokoin/App.java b/chain/src/main/java/ru/molokoin/App.java index b441d04..d214c13 100644 --- a/chain/src/main/java/ru/molokoin/App.java +++ b/chain/src/main/java/ru/molokoin/App.java @@ -6,6 +6,21 @@ public class App { int[] i = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //Хранилище - Pearl treasury; + Pearl treasury = new Pearl(); + treasury.add(i[0]); + treasury.add(i[1]); + treasury.add(i[2]); + treasury.add(i[3]); + treasury.add(i[4]); + treasury.add(i[5]); + treasury.add(i[6]); + treasury.add(i[7]); + treasury.add(i[8]); + treasury.add(i[9]); + //печать из хранилища + treasury.print(); + System.out.print("Последний элемент списка: "); + treasury.getLast().print(); + } } diff --git a/chain/src/main/java/ru/molokoin/Pearl.java b/chain/src/main/java/ru/molokoin/Pearl.java index 65dad83..a5a02c7 100644 --- a/chain/src/main/java/ru/molokoin/Pearl.java +++ b/chain/src/main/java/ru/molokoin/Pearl.java @@ -9,16 +9,49 @@ package ru.molokoin; */ public class Pearl { private Object gem; - private Pearl next = null; + private Pearl next; + public Pearl(){ + this(null, null); + } public Pearl(Object gem){ + this(gem, null); + } + public Pearl(Object gem, Pearl next){ setGem(gem); + setNext(next); } + /** + * Рекурсивно печатает данные, пока не упрется в next = null + */ public void print(){ - System.out.println((int)gem); + System.out.println(gem); + if (next != null){ + getNext().print(); + } } + /** + * перебирает жемчужины до конца, последней присваивет в next новую жемчужину + * @param gem + */ public void add(Object gem){ - next.setGem(gem); + if(this.gem == null){setGem(gem);} + else { + Pearl pearl = new Pearl(gem); + Pearl current = this; + while (current.next != null){ + current = current.next; + } + current.next = pearl; + } + } + + public Pearl getLast(){ + Pearl current = this; + while (current.next != null){ + current = current.next; + } + return current; } /** * @param gem the gem to set diff --git a/chain/target/classes/ru/molokoin/App.class b/chain/target/classes/ru/molokoin/App.class index acfe41a..353db49 100644 Binary files a/chain/target/classes/ru/molokoin/App.class and b/chain/target/classes/ru/molokoin/App.class differ diff --git a/chain/target/classes/ru/molokoin/Pearl.class b/chain/target/classes/ru/molokoin/Pearl.class index 2d5ebc3..01d709c 100644 Binary files a/chain/target/classes/ru/molokoin/Pearl.class and b/chain/target/classes/ru/molokoin/Pearl.class differ