diff --git a/MyOwnArrayList.java b/MyOwnArrayList.java new file mode 100644 index 0000000..fa5e20d --- /dev/null +++ b/MyOwnArrayList.java @@ -0,0 +1,99 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package src.result.others; + +import java.util.ArrayList; +import java.lang.Exception; +import java.util.Iterator; +/** +* +* @author User +*/ +public class MyOwnArrayList implements Iterable{ +private Object[] ElementData; +MyOwnArrayList(){ +this(10); +} +MyOwnArrayList(int i){ +if (i < 0) +throw new IllegalArgumentException("Illegal Capacity: "+i); +this.ElementData=new Object[i]; +} +public void add(Object ob){ +int i=0; +for(i=0;i0; +} +public void remove(int index){ +System.arraycopy(ElementData, index+1, ElementData, index, ElementData.length-index-1); +ElementData[ElementData.length-1] = null; +Object[] NewElementData=new Object[ElementData.length-1]; +System.arraycopy(ElementData, 0, NewElementData, 0, ElementData.length-1); +ElementData=new Object[NewElementData.length]; +ElementData=NewElementData; + +} +public void remove(Object ob){ +int index=0; +for(int i=0;i0){ +Object[]NewElementData=new Object[ElementData.length+1]; +System.arraycopy(ElementData, 0, NewElementData, 0, ElementData.length); +ElementData=new Object[NewElementData.length]; +ElementData=NewElementData; +} +} +/* +Для проверки методов +*/ +public void showAll(){ +for(Object x:ElementData)System.out.println("Element: "+x); +} + +@Override +public Iterator iterator() { + return new Iterator() { + int i; + @Override + public boolean hasNext() { + return i!=ElementData.length; + } + + @Override + public Object next() { + i++; + return ElementData[i-1]; + } + + }; +} +} diff --git a/MyOwnLinkedList.java b/MyOwnLinkedList.java new file mode 100644 index 0000000..c0cba1b --- /dev/null +++ b/MyOwnLinkedList.java @@ -0,0 +1,141 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package src.result.others; + +import java.util.Iterator; + +/** + * + * @author Вика + */ +public class MyOwnLinkedList implements Iterable{ +private int size; +private Entry head; +private Entry pred; + + @Override + public Iterator iterator() { + return new Iterator(){ + Entry e = head; + + @Override + + public boolean hasNext() { + + + return e!= null; + } + + @Override + public Object next() { + Object ob = e.element; + e = e.next; + return ob; + } + }; + } +private static class Entry { + +Object element; +Entry next; +Entry prev; + +Entry(E element) { +this.element = element; +} +} + +public void add(Object ob) { +Entry e = new Entry(ob); +if (size == 0) { +head = e; +//head.next=e; +//head.prev=e; +} else { +pred.next = e; +e.prev = pred; +} +pred = e; +//head.prev=e; +size++; + +} + +public boolean contains(Object ob) { +Entry e = head; +while (e.next != null) { +if (e.element.equals(ob)) { +return true; +} +e = e.next; +} +return false; +} + +public void remove(Object ob) { +Entry e = head; +size--; +do { +if (size == 0) { +head = null; +break; +} +if (e.element.equals(ob)) { +if (head.element.equals(ob)) { +poll(); +break; +} else if (e.next == null) { +e.prev.next = null; +break; +} else { +e.next.prev = e.prev; +e.prev.next = e.next; +break; +} +} +e = e.next; +} while (e != null); +} + +public void set(int index, Object ob) { +Entry e = head; +for (int i = 0; i < size; i++) { +if (i == index) { +e.element = ob; +} +e = e.next; +} +} + +public Object peek() { +return head.element; +} + +public void addAll(Object[] ob) { +for (Object x : ob) { +add(x); +} +} + +public Object poll() { +Entry e = head; +head = head.next; +head.prev = null; +return e.element; +} + +/* +Для проверки методов +*/ +public void showAll() { +Entry e = head; +while (e.next != null) { +System.out.println(e.element); +e = e.next; +} +System.out.println(e.element); +} +} \ No newline at end of file diff --git a/NewClass.java b/NewClass.java new file mode 100644 index 0000000..1e56907 --- /dev/null +++ b/NewClass.java @@ -0,0 +1,38 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package src.result.others; + +import java.util.Iterator; + +/** + * + * @author Вика + */ +public class NewClass { + public static void main(String[] args){ +MyOwnLinkedList moar=new MyOwnLinkedList(); +//Iterator it=moar.iterator(); +moar.add("1"); +moar.add("2"); +moar.add("3"); +moar.add("4"); +moar.add("5"); +moar.add("6"); +moar.add("7"); +moar.add("8"); +moar.add("9"); +moar.add("10"); +moar.add("11"); +moar.add("12"); +moar.add("13"); +moar.add("14"); +moar.add("15"); + +//moar.showAll(); +Iterator it=moar.iterator(); +while(it.hasNext())System.out.println(it.next()); +} +} diff --git "a/\320\257- \320\277\321\200\320\276\320\263\321\200\320\260\320\274\320\274\320\270\321\201\321\202" "b/\320\257- \320\277\321\200\320\276\320\263\321\200\320\260\320\274\320\274\320\270\321\201\321\202" new file mode 100644 index 0000000..bfae821 --- /dev/null +++ "b/\320\257- \320\277\321\200\320\276\320\263\321\200\320\260\320\274\320\274\320\270\321\201\321\202" @@ -0,0 +1 @@ +12341234 \ No newline at end of file diff --git "a/\320\257-\320\277\321\200\320\276\320\263\321\200\320\260\320\274\320\274\320\270\321\201\321\202.txt" "b/\320\257-\320\277\321\200\320\276\320\263\321\200\320\260\320\274\320\274\320\270\321\201\321\202.txt" new file mode 100644 index 0000000..d5a819b --- /dev/null +++ "b/\320\257-\320\277\321\200\320\276\320\263\321\200\320\260\320\274\320\274\320\270\321\201\321\202.txt" @@ -0,0 +1 @@ +123123123 \ No newline at end of file