Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package blatt3;
- import java.lang.Iterable;
- import java.util.Iterator;
- public class RingList<E> implements List<E> {
- private class Wrapper {
- E e;
- Wrapper succ;
- Wrapper(E e){
- this.e = e;
- succ = null;
- }
- }
- Wrapper first;
- Wrapper last;
- int size;
- RingList(){
- first = new Wrapper(null);
- last = first;
- last.succ = first;
- size = 0;
- }
- public boolean add(E e) {
- Wrapper w = new Wrapper(e);
- last.succ = w;
- last = w;
- last.succ = first;
- size++;
- return true;
- }
- public boolean remove(Object o) {
- Wrapper temp = first;
- Wrapper w = first.succ;
- for(int i = 0; i<size; i++) {
- if(o.equals(w.e)) {
- temp.succ = w.succ;
- if(i == size -1) {
- last = temp.succ;
- }
- size--;
- return true;
- }
- temp = w;
- w = temp.succ;
- }
- return false;
- }
- public E remove(int index) {
- if(index >= size || index < 0) {
- throw new IndexOutOfBoundsException();
- }
- Wrapper temp = first;
- Wrapper w = first.succ;
- for(int i = 0; i<index; i++) {
- temp = w;
- w = temp.succ;
- }
- temp.succ = w.succ;
- if(index == size -1) {
- last = temp;
- }
- size--;
- return w.e;
- }
- public int indexOf(Object o) {
- Wrapper temp = first;
- Wrapper w = first.succ;
- for(int i = 0; i<size; i++) {
- if(o.equals(w.e)) {
- return i;
- }
- temp = w;
- w = temp.succ;
- }
- return -1;
- }
- public E get(int index) {
- Wrapper wRun;
- if (index < 0 || index >= size){
- throw new IndexOutOfBoundsException();
- }
- wRun = this.first.succ;
- for (int iRun = 0; iRun < index; iRun++){
- wRun = wRun.succ;
- }
- return wRun.e;
- }
- public int size() {
- return size;
- }
- public Iterator<E> iterator() {
- return new Iterator<E>(){
- Wrapper next = first.succ;
- Wrapper current;
- public boolean hasNext() {
- return next.e != null;
- }
- public E next() {
- current = next;
- if (next != null){
- next = next.succ;
- }
- return current.e;
- }
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
- }
- // MAIN KLASSE:
- package blatt3;
- import java.awt.Point;
- import java.util.Iterator;
- public class Main {
- public static void main(String[] args) {
- int n = 5;
- if (args.length > 0){
- n = Integer.parseInt(args[0]);
- }
- List<Integer> aList = new RingList<Integer>();
- for (int i = 0; i < n; i++){
- aList.add(i*i);
- }
- Integer num1 = new Integer(0);
- Integer num2 = new Integer(9);
- Integer num3 = new Integer(10);
- // System.out.println("Index of " + num1 + ": " + aList.indexOf(num1));
- // System.out.println("Index of " + num2 + ": " + aList.indexOf(num2));
- // System.out.println("Index of " + num3 + ": " + aList.indexOf(num3));
- // System.out.println("Remove " + num1 + ": " + aList.remove(num1));
- // System.out.println("Remove " + num2 + ": " + aList.remove(num2));
- System.out.println("Remove " + num3 + ": " + aList.remove(aList.size() -1));
- aList.add(99);
- /* Ausgabeschleife 1 fuer Integer-Liste aList */
- for (int i = 0; i < aList.size(); i++){
- System.out.println(aList.get(i));
- }
- // System.out.println("=======================");
- // for (int val: aList){
- // System.out.println(val);
- // }
- // System.out.println("=======================");
- //
- // List<String> bList = new RingList<String>();
- //
- // for (int i = 0; i < n; i++){
- // bList.add("als String " + i * i);
- // }
- // /* Ausgabeschleife 2 fuer String-Liste bList */
- // for (Iterator it = (Iterator) bList.iterator(); it.hasNext();){
- // System.out.println(it.next());
- // }
- // System.out.println("=======================");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement