请进来讨论!探讨细节
- package com.yaya.collection;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 自己实现简单的ArrayList
- * @author ya
- *
- */
- public class sxArraysList {
- private Object[] myelementDate;
- private int mysize;
- public int mySize() {
- return mysize;
- }
- public sxArraysList() {
- this(10);
- }
- public sxArraysList(int mychushihua) {
- if (mychushihua < 0) {
- try {
- throw new Exception();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- myelementDate = new Object[mychushihua];
- }
- public boolean iskong() {
- return mysize == 0;
- }
- public void myadd(Object obj) {
- // 扩容
- if (myelementDate.length == mysize) {
- Object[] newArrays = new Object[mysize * 2];
- System.arraycopy(myelementDate, 0, newArrays, 0,
- myelementDate.length);// 复制原来数组
- myelementDate = newArrays;
- }
- myelementDate[mysize] = obj;
- mysize++;
- }
- public Object myget(int index) {
- if (index < 0 || index >= mysize) {//这个判断封装起来比较好,我是一直复制的 - -!然后用private修饰外界不能调用
- try {
- throw new Exception();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return myelementDate[index];
- }
- public Object myset(int index, Object obj) {
- if (index < 0 || index >= mysize) {
- try {
- throw new Exception();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- } else {
- myelementDate[index]=obj;
- }
- return obj;
- }
- public void myremove(int index) {
- if (index < 0 || index >= mysize) {
- try {
- throw new Exception();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- } else {
-
- int movenub=mysize-index-1;
- if(movenub>0){
- System.arraycopy(myelementDate, index+1, myelementDate, index, movenub);
- }
- mysize--;
- myelementDate[mysize]=null;
- }
- //return oldArrays;
- }
- public void myremove(Object obj){
- for(int i=0;i<mysize;i++){
- if(myelementDate[i].equals(obj)){
- myremove(i);
- }
- }
- }
- public static void main(String[] args) {
- sxArraysList sxlist = new sxArraysList();
- sxlist.myadd("aaa");
- sxlist.myadd("bbb");
- sxlist.myadd("ccc");
- //System.out.println(sxlist.mySize());
- //sxlist.myset(0, "a1");
-
- //System.out.println(sxlist.myget(0));
- //sxlist.myremove("aaa");
- /*
- * for(int i=0;i<sxlist.mySize();i++){
- * System.out.println(sxlist.myget(i)); }
- */
- }
-
- }
复制代码 |