MyArrayList

来源:互联网 发布:淘宝联盟一直登录界面 编辑:程序博客网 时间:2024/06/08 17:04

import java.util.*;
public class MyArrayList implements List{
 public Object[] data;
 private int  count;
 
 
 public MyArrayList(){//构造方法
//  data=new Object[10];
  this(10);
 }
 public MyArrayList(int initCap){//构造方法
  data=new Object[initCap];
  count=0;
 }
 public MyArrayList(Collection c){//构造方法
  data=new Object[c.size()];
  for(Object obj:c){
   data[count++]=obj;
  }
 }
 
 
 @Override
 public void add(int index, Object element) {
  // ???????????????????????
  if(index<0||index>count){
   System.out.println("下标不合法!");
  }
  if(count==data.length){
   Object[] temp=new Object[2*data.length];
   System.arraycopy(data,0,temp,0,data.length);
   data=temp;
  }
  for(int i=count;i>index;i--){
   data[i]=data[i-1];
  }
  data[index]=element;
  count++;
 }

 @Override
 public boolean add(Object e) {
  // ??????????????????
  add(count,e);
  return true;
 }

 @Override
 public boolean addAll(Collection c) {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public boolean addAll(int index, Collection c) {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public void clear() {
  // ?????????????????????
  for(int i=0;i<count;i++){
   data[i]=null;
  }
  count=0;
 }

 @Override
 public boolean contains(Object o) {
  // ???????????????????????
  for(int i=0;i<count;i++){
   if(data[i].equals(o)){
    return true;
   }
  }
  return false;
 }

 @Override
 public boolean containsAll(Collection c) {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public Object get(int index) {
  // ????????????????????????
  if(index<0||index>count){
   System.out.println("下标不合法!");
  }
  
  return data[index];
 }

 @Override
 public int indexOf(Object o) {
  // ???????????????????????????
  for(int i=0;i<count;i++){
   if(data[i].equals(o)){
    return i;
   }
  }
  return -1;
 }

 @Override
 public boolean isEmpty() {
  // ???????????????????????
  return count==0;

 @Override
 public Iterator iterator() {
  // ??????????????????????????(选作)
  return null;
 }

 @Override
 public int lastIndexOf(Object o) {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public ListIterator listIterator() {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public ListIterator listIterator(int index) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public Object remove(int index) {
  // ???????????????????????
  if(index<0||index>count){
   System.out.println("下标不合法!");
  }
  Object temp=data[index];
  for(int i=index ;i<count-1;i++){
   data[i]=data[i+1];
  }
  count--;
  return temp;
 }

 @Override
 public boolean remove(Object o) {
  // ????????????????????????
  for(int i=0;i<count;i++){
   if(data[i].equals(o)){
     remove(i);
     return true;
   }
  }
  return false;
 }

 @Override
 public boolean removeAll(Collection c) {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public boolean retainAll(Collection c) {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public Object set(int index, Object element) {
  // ????????????????????????????
  if(index<0||index>count){
   System.out.println("下标不合法!");
  }
  Object temp=data[index];
  data[index]=element;
  return temp;
 }

 @Override
 public int size() {
  // ??????????????????????????
  return count;
 }

 @Override
 public List subList(int fromIndex, int toIndex) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public Object[] toArray() {
  // ?????????????????????????????
  Object[] temp=new Object[count];
  System.arraycopy(data,0,temp,0,count);
  return temp;
 }

 @Override
 public Object[] toArray(Object[] a) {
  // TODO Auto-generated method stub
  return null;
 }

}