From 37a6663f809c3c570a405da4d85c205e39e46ce5 Mon Sep 17 00:00:00 2001 From: esoe Date: Tue, 25 Oct 2022 20:40:25 +0300 Subject: [PATCH] qq --- chain/src/main/java/ru/molokoin/App.java | 47 +++++++++---- chain/src/main/java/ru/molokoin/Pearl.java | 63 +++++++++++++++++- chain/target/classes/ru/molokoin/App.class | Bin 1381 -> 1511 bytes chain/target/classes/ru/molokoin/Pearl.class | Bin 1597 -> 2152 bytes .../target/classes/ru/molokoin/Treasury.class | Bin 334 -> 0 bytes 5 files changed, 96 insertions(+), 14 deletions(-) delete mode 100644 chain/target/classes/ru/molokoin/Treasury.class diff --git a/chain/src/main/java/ru/molokoin/App.java b/chain/src/main/java/ru/molokoin/App.java index d214c13..d7b51a2 100644 --- a/chain/src/main/java/ru/molokoin/App.java +++ b/chain/src/main/java/ru/molokoin/App.java @@ -3,24 +3,47 @@ public class App { public static void main(String[] args) { System.out.println("Запущен поток: " + Thread.currentThread().getName()); //данные - int[] i = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + //int[] i = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + String i[] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; //Хранилище 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.addLast(i[0]); + treasury.addLast(i[1]); + // treasury.addLast(i[2]); + // treasury.addLast(i[3]); + // treasury.addLast(i[4]); + // treasury.addLast(i[5]); + // treasury.addLast(i[6]); + // treasury.addLast(i[7]); + // treasury.addLast(i[8]); + // treasury.addLast(i[9]); + + //добавляем элементы в начало списка + // treasury.addFirst(i[0]); + // treasury.addFirst(i[1]); + // treasury.addFirst(i[2]); + // treasury.addFirst(i[3]); + // treasury.addFirst(i[4]); + // treasury.addFirst(i[5]); + // treasury.addFirst(i[6]); + // treasury.addFirst(i[7]); + // treasury.addFirst(i[8]); + // treasury.addFirst(i[9]); + //печать из хранилища treasury.print(); - System.out.print("Последний элемент списка: "); + //печать последнего элемента + System.out.print("Последний элемент списка (get): "); treasury.getLast().print(); + System.out.print("Последний элемент списка (execute): "); + treasury.executeLast().print(); + + //печать из хранилища + System.out.print("Оставшиеся в списке данные: "); + treasury.print(); } } diff --git a/chain/src/main/java/ru/molokoin/Pearl.java b/chain/src/main/java/ru/molokoin/Pearl.java index a5a02c7..614dba8 100644 --- a/chain/src/main/java/ru/molokoin/Pearl.java +++ b/chain/src/main/java/ru/molokoin/Pearl.java @@ -6,11 +6,15 @@ package ru.molokoin; * это структура, хранящая данные в виде цепочки, каждый узел которой хранит очередное значение списка и ссылку на следующий узел. * Ссылка на следующий узел последнего элемента списка равна null. * + * TODO обработать исключения: + * - + * */ public class Pearl { private Object gem; private Pearl next; + //использую для переписи данных массива public Pearl(){ this(null, null); } @@ -21,6 +25,38 @@ public class Pearl { setGem(gem); setNext(next); } + /** + * Удаляет с ожерелья последнюю жемчужину, + * возвращает эту жемчужину + * @return + * TODO в списке может быть только один элемент + */ + public Pearl executeLast(){ + //получил последнюю жемчужину, можно удалять ее с ожерелья + Pearl last = getLast();//можно данные получать в том же переборе, где и удаление происходит (исключим один перебор) + + /** + * удаление последней жемчужины. + * в предпоследней жемчужине next приравниваем null + */ + int i = 0; + Pearl current = this; + while (i < lenght()-1){ + current = current.next; + i++; + } + current.setNext(null); + return last; + } + public int lenght(){ + int lenght = 0; + Pearl current = this; + while(current.next != null){ + current = current.getNext(); + lenght++; + } + return lenght; + } /** * Рекурсивно печатает данные, пока не упрется в next = null */ @@ -31,10 +67,11 @@ public class Pearl { } } /** + * Добавление элемента в конец списка * перебирает жемчужины до конца, последней присваивет в next новую жемчужину * @param gem */ - public void add(Object gem){ + public void addLast(Object gem){ if(this.gem == null){setGem(gem);} else { Pearl pearl = new Pearl(gem); @@ -45,7 +82,28 @@ public class Pearl { current.next = pearl; } } - + /** + * Добавление элемента в начало списка. + * + * @param gem + */ + public void addFirst(Object gem){ + if(this.gem == null){setGem(gem);} + else { + //создаем новую жемчужину с параметрами первой + Pearl pearl = new Pearl(getGem()); + pearl.setNext(getNext()); + //пишем в текущую-первую жемчужину новые данные + setGem(gem); + //и устанавливаем ссылку на новую жемчужину + setNext(pearl); + } + } + /** + * возвращает последнюю жемчужину-Pearl + * getLast().getGem()//вернет данные последней жемчужины + * @return + */ public Pearl getLast(){ Pearl current = this; while (current.next != null){ @@ -60,6 +118,7 @@ public class Pearl { this.gem = gem; } /** + * Возвращает данные-gem жемчужины * @return the gem */ public Object getGem() { diff --git a/chain/target/classes/ru/molokoin/App.class b/chain/target/classes/ru/molokoin/App.class index 353db4999d8eb3e719826e279f1334dfce8386db..d034174f4b126c19a94dddafd7a71b28df793652 100644 GIT binary patch delta 607 zcmXX?O-~b16g~4nJ4`F7Z=s1|GSL{TZ77jgw2I$|)uPC#bx_2SKH4!d#dccJ4dRN# z7#6c|q476JV+%p6dsnYNg1F%~81K+-&O7J6^Uk~X?&yCb`k#N>zW|KF+0ZBCmDmfr zZl_+_ZZTzg6~`@VNJ~)4F4u6Di1)gzAtRyBD^)nvE=W)p%C(Ayive@$RJ%;Rs6{z@&iSoZVsz`-o~b!0Ia#U0$05Vi}2 zoL%+&pYovtS=@_a8X<~XqV_26zJ#>DD-R7C@gnz5W(*xEJPb^OLCT{jEX?@B%F&R9 zClWG&ch-pWWj84LhK4*m|Y{(*f?Q7n=o@fkhL~(dor0&PPdRtCe*#7g{cN&%xvL7 zvW0w4KJLodo_yAoQyWXvhzy-DjeUeF4kL^_Rpv-9U;v9aj#oH=H;CgMPGJoRtYZkD jXrZ4mj0n9lx&z@k=1Ju-jsh`>GRD9uMJ8UP8yThlM(LG~ delta 548 zcmZXQJ!=$E6o#L>GdmwQquz~VMT`()laM7N1iyCujwY^dyomu}uo{ywByM(P*~CUz z1Un0hL2T`!*<+R3!9yOvX=A$>NEuIcHG`d^gTg! zqB+_64{PLu&IO$3g20MbR|O*zdoX=>BUu^kHzsfA;H7}eID+zn-g>9+aYb-EePK;k z>tm9Txx74@gVzF@Tu-~!csgz$vr2cG>8$l(EWHCZRm#o9HX4Tkn~P-f&`}Hf2q}hB3ujz>jT)ZKxLV7YH+IKdP(qqGN5w>&BRDMK6PfG^Lu?Z8kbOL6KTkQp za}+NP`-)*Q4)Tc+KG&)8l|y{vuxWv@-Pdq~mT^lwVS$?nGxQOfMYB?vY`*%|A1AMJ AZ~y=R diff --git a/chain/target/classes/ru/molokoin/Pearl.class b/chain/target/classes/ru/molokoin/Pearl.class index 01d709cce7ca4512ccf7c15ac16f6b180ff6dad7..10ca992b8e827e4b27482f36de0fda9e1b01a279 100644 GIT binary patch literal 2152 zcmZ`)TW=dh7(KJTY~pO{G#A%N+EAxWvDc1WE=@|4rdLu5P8yLaqCx^~oF#SZOXS$4 zJirTifnNbn6%r4C+C&10M4qzJZ z+prXlHd=*hy;8qlFV_l7zSpSO2rKm6^B#DGidS1N+*-ZomzoNpb-$|6Uwm<9Mj>4D zA2MU0_!1Z=qqF5&xj9FGbY_LQ*XnD23<|vtx^YAyoqidz1CXqZ7t1w&u~l958@IjH ziZ68PC9ksLHOlgAg5l=f@}|O22jI*~3?U3k>6nm6I5>uWlHBy0H~gxEh8>JxRKaFw zQSU2}eg&T%|Dj)MHT|Nu$?XrNGad2-@-+u1ae|QRep7P085?(Cqf2H_JD9*3a;W&V z^}C{UI&+gkRWzz9D=0qNrByUg$~D$`18>=Q z^H4vRzu0X0RR?e5981+(!aV3exn5Y3Wy{Tm?^S1n<+OtcqA|RK853WF50gVSQm z^;VdUd0Gwe36J$yRHEXC1wmD+*xvrdfj8skD> zfJ+C_$2%uT!%+<)5d8+?5+NklcC(!z5`;LWAre8Ff#3qojO`@Y5d(IIIl?>c?qI;p zZez&JZ6kTWs~=%bCwU#_vJoyE)!-+CW&7Z915PM07GV{Rm9kT^z!rjJLF?7*g ze1x9K$4D)1S?V~0r^0LB@BKBYSUdX@6GMan&afnKn$RvmvwX@?m`N7RQ>Gloa2BU% zG7-!T3K&8WI{tOipa+>3BjMe>zej)MTtIM)@Sv3~Ha3hYK24M0d6J((0vFnpN*ZDo;}fLA1I8@~9ZS<; z|DVEs&V}wZTt3oD0>i)Htos;K+c?i5^#@{9jl?cWs{%4Xt1fft6&Ab7rd`(r0xJz0 z0P1k?jntHi_KrcIL8b=WWR2=b*W&uu%NL`lCoUYVvHDBf-dzT9Dj=5phe+-d4?3O z?bH62w53t`!?aUEoAO*2=D9$pTDn z$sk}WYKCFO#pry;nx=imQ6FcwNZGPftSA@C)@JSm!GH=AtGuhRZB-W9(1nAeJ75Z1 z9K|V0JEa@ee~3_#Fa!L0n3{70lA2LB`vg-52RL}KJYb2>+n}TSdy1MpDR~1LtO7@Q zOGQLiIgXY-j!_-_Qo{tMiWnFr-z>BE5D{&WV0A#`YnI!31rd2~NMU|V3|2dl)Qd#E L=}6=~P50*iM?@=? delta 733 zcmZ8eO=}ZT6g_VyFK;rPG-GVjD8@DuO_Q0#(YDsFR3R&cHV9GF<=BozjUl9?C6KSNl%T8zTakROU1z5JrZspDY1p!&U*vgu9h7(UtJx`}FijW*Okzgv z>fSR2J3)GHLZcUO=oL!tYg9%!PR9KN(;cBP!pR*9>d4WZClIJcQNjTlOc8Ui$zvq| zy0qI4d*@BE$=Os*4)lEj3zO6)V25Ld$aKd z?mu!T2Cq^hH6pI#FkEWGgG08Crkbhz$;;j{mas@k!U%KbuCfYF!wLAn{v zQvR28(Q{Y5gwJ~!H?D*hXrD@mMhZBVNbn+wTb5-pBNQsbg1jW=3l-I#7SF~c3$!SG zMLrd?wR1SXFWo1r2F#Uo#gP=GV`p3Libf%pIgWFgaIQ#hl-sIWt!W&^{U4<>wg$ex K28IhUSL-ix5o#y^ diff --git a/chain/target/classes/ru/molokoin/Treasury.class b/chain/target/classes/ru/molokoin/Treasury.class deleted file mode 100644 index bc2986b43ba6c42745e525db73de35ae59fc9d61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmZXPO-sW-5Qg7LW1_L&Xz$+q0CV)v(u>ejP{GpsCJuG$CJWm{@Mn1vJop3rQQ~ZC zp&$#h^US{Q%&Css2nmDzmj_nP5Tc2$bUh`U zo@Xods#2q>WqO~lxTwb$3qp8npEyAaM{OJ+BJ?s{@m*8q?B*&rOc-XiP-dZ=_WV~2 z>u0?tjI#ZqyLHBd){;wa{Wp}5Jle(;Jk!2;XXm;0N}NHg@>|GFej$mm&=i3jAiBKz jz~Q@O0TPMHrrH%{AIHL@tqN^)ghY=ndYfK-p#Xzl4E0F@