A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请进来讨论!探讨细节

  1. package com.yaya.collection;

  2. import java.util.ArrayList;
  3. import java.util.List;

  4. /**
  5. * 自己实现简单的ArrayList
  6. * @author ya
  7. *
  8. */

  9. public class sxArraysList {
  10.         private Object[] myelementDate;
  11.         private int mysize;

  12.         public int mySize() {
  13.                 return mysize;
  14.         }

  15.         public sxArraysList() {
  16.                 this(10);
  17.         }

  18.         public sxArraysList(int mychushihua) {
  19.                 if (mychushihua < 0) {
  20.                         try {
  21.                                 throw new Exception();
  22.                         } catch (Exception e) {
  23.                                 // TODO Auto-generated catch block
  24.                                 e.printStackTrace();
  25.                         }
  26.                 }

  27.                 myelementDate = new Object[mychushihua];
  28.         }

  29.         public boolean iskong() {
  30.                 return mysize == 0;
  31.         }

  32.         public void myadd(Object obj) {
  33.                 // 扩容
  34.                 if (myelementDate.length == mysize) {
  35.                         Object[] newArrays = new Object[mysize * 2];
  36.                         System.arraycopy(myelementDate, 0, newArrays, 0,
  37.                                         myelementDate.length);// 复制原来数组
  38.                         myelementDate = newArrays;

  39.                 }
  40.                 myelementDate[mysize] = obj;
  41.                 mysize++;
  42.         }

  43.         public Object myget(int index) {
  44.                 if (index < 0 || index >= mysize) {//这个判断封装起来比较好,我是一直复制的   - -!然后用private修饰外界不能调用
  45.                         try {
  46.                                 throw new Exception();
  47.                         } catch (Exception e) {
  48.                                 // TODO Auto-generated catch block
  49.                                 e.printStackTrace();
  50.                         }
  51.                 }
  52.                 return myelementDate[index];
  53.         }

  54.         public Object myset(int index, Object obj) {
  55.                 if (index < 0 || index >= mysize) {
  56.                         try {
  57.                                 throw new Exception();
  58.                         } catch (Exception e) {
  59.                                 // TODO Auto-generated catch block
  60.                                 e.printStackTrace();
  61.                         }
  62.                 } else {
  63.                         myelementDate[index]=obj;
  64.                 }
  65.                 return obj;
  66.         }

  67.         public void myremove(int index) {
  68.                 if (index < 0 || index >= mysize) {
  69.                         try {
  70.                                 throw new Exception();
  71.                         } catch (Exception e) {
  72.                                 // TODO Auto-generated catch block
  73.                                 e.printStackTrace();
  74.                         }
  75.                 } else {
  76.                        
  77.                         int movenub=mysize-index-1;
  78.                         if(movenub>0){       
  79.                                 System.arraycopy(myelementDate, index+1, myelementDate, index, movenub);
  80.                         }
  81.                         mysize--;
  82.                         myelementDate[mysize]=null;
  83.                 }       
  84.                 //return oldArrays;
  85.         }
  86.         public void myremove(Object obj){
  87.                 for(int i=0;i<mysize;i++){
  88.                         if(myelementDate[i].equals(obj)){
  89.                                 myremove(i);
  90.                         }
  91.                                 }
  92.         }

  93.         public static void main(String[] args) {
  94.                 sxArraysList sxlist = new sxArraysList();
  95.                 sxlist.myadd("aaa");
  96.                 sxlist.myadd("bbb");
  97.                 sxlist.myadd("ccc");

  98.                 //System.out.println(sxlist.mySize());
  99.                 //sxlist.myset(0, "a1");
  100.                
  101.                 //System.out.println(sxlist.myget(0));
  102.                 //sxlist.myremove("aaa");
  103.                 /*
  104.                  * for(int i=0;i<sxlist.mySize();i++){
  105.                  * System.out.println(sxlist.myget(i)); }
  106.                  */
  107.         }
  108.        

  109. }
复制代码

评分

参与人数 3技术分 +1 黑马币 +36 收起 理由
xiaoyaya + 1
无忧可伤 + 35 很给力!
洋葱头头 + 1

查看全部评分

5 个回复

倒序浏览
支持  黑马  加油
回复 使用道具 举报
已加精~~~~~~~~~~~~
回复 使用道具 举报

哈哈!!!!!谢谢!!!!!!
回复 使用道具 举报
真的加精了吗?
回复 使用道具 举报
穆帆 发表于 2015-9-27 10:16
真的加精了吗?

怎么可能   哈哈!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马