Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions MyOwnArrayList.java
Original file line number Diff line number Diff line change
@@ -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 <E> implements Iterable<Object>{
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;i<ElementData.length;i++)if(ElementData[i]==null)break;
if(i==ElementData.length)ensureCapacity(ElementData.length+1);
ElementData[i]=ob;
}
public int size(){
int length=ElementData.length;
return length;
}
public int indexOf(Object ob){
int index = 0;
for(int i=0;i<ElementData.length;i++)if(ob.equals(ElementData[i]))return i;
return -1;
}
public boolean contains(Object ob){
return indexOf(ob)>0;
}
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;i<ElementData.length;i++)if(ob.equals(ElementData[i])){
index=i;
break;
}
remove(index);
}
public void set(int index,Object ob){
ElementData[index]=ob;
}
public void clear(){
for(int i=0;i<ElementData.length;i++)ElementData[i]=null;
ElementData=new Object[0];
}
private void ensureCapacity(int copacity){
if(copacity-ElementData.length>0){
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<Object> iterator() {
return new Iterator() {
int i;
@Override
public boolean hasNext() {
return i!=ElementData.length;
}

@Override
public Object next() {
i++;
return ElementData[i-1];
}

};
}
}
141 changes: 141 additions & 0 deletions MyOwnLinkedList.java
Original file line number Diff line number Diff line change
@@ -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 <E> implements Iterable<Object>{
private int size;
private Entry<E> head;
private Entry<E> pred;

@Override
public Iterator<Object> iterator() {
return new Iterator(){
Entry<E> 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<E> {

Object element;
Entry<E> next;
Entry<E> prev;

Entry(E element) {
this.element = element;
}
}

public void add(Object ob) {
Entry<E> 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> 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> 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> 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> e = head;
head = head.next;
head.prev = null;
return e.element;
}

/*
Для проверки методов
*/
public void showAll() {
Entry<E> e = head;
while (e.next != null) {
System.out.println(e.element);
e = e.next;
}
System.out.println(e.element);
}
}
38 changes: 38 additions & 0 deletions NewClass.java
Original file line number Diff line number Diff line change
@@ -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());
}
}
1 change: 1 addition & 0 deletions Я- программист
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
12341234
1 change: 1 addition & 0 deletions Я-программист.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
123123123