| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1894 人关注过本帖
标题:ArrayList中的size问题
只看楼主 加入收藏
王小贱2016
Rank: 1
等 级:新手上路
帖 子:21
专家分:9
注 册:2016-4-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
ArrayList中的size问题
以下是我自己写ArrayList的代码,没有给其中的变量size赋值,但是结果输出的size确实对的,我觉得应该添加我在下面注释的代码才应该对呀


public class SxAarryList  {
    private Object[] elementData;
    private int size;
    public int size(){
        return size;
    }
   
    public boolean isEmpty(){
    return size==0;
    }
    public SxAarryList(){
        this(10);
        
    }
   
    public SxAarryList(int initicalCapacity){
        if(initicalCapacity<0){
            try {
                throw new Exception();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
       //size=initicalCapacity 是这个地方应该加这句代码呀,为什么不加也是对的
        elementData=new Object[initicalCapacity];
    }
   
    public void add(Object obj)
    {
        if(size==elementData.length){
            Object[] newArray=new Object[size* 2+1];
            System.arraycopy(elementData, 0, newArray, 0, elementData.length);
            //for(int i=0;i<elementData.length;i++){
                //newArray[i]=elementData[i];
            //}
            elementData=newArray;
        }
        
        
        elementData[size]=obj;
        size++;
    }
   
    public Object get(int index){
        if(index<0||index>=size){
            try {
                throw new Exception();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return elementData[index];
    }
    public void remove(int index){
        
    }
   
     public static void main(String[] args) {
        SxAarryList list =new SxAarryList(3);
        list.add("666");
        list.add("bbb");
        list.add("fff");
        list.add("fff");
        list.add("fff");
        list.add("fff");
        list.add("fff");
        System.out.println(list.size());
        System.out.println(list.get(3));

        
        
    }

}
搜索更多相关主题的帖子: size list public Object add 
2017-07-10 12:43
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:5 
程序代码:
   public void add(Object obj)
    {
        if(size==elementData.length){
            Object[] newArray=new Object[size* 2+1];
            System.arraycopy(elementData, 0, newArray, 0, elementData.length);
            //for(int i=0;i<elementData.length;i++){
                //newArray[i]=elementData[i];
            //}
            elementData=newArray;
        }
        
        
        elementData[size]=obj;
        size++;//你是指的get方法调不报?
    }

不过初始化参数指定的数组长度,你的size应该是数据长度吧?
恩。。。这个扩容有点狠呀

剑栈风樯各苦辛,别时冰雪到时春
2017-07-10 14:09
cui27387
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2010-10-22
收藏
得分:5 
2L正解,size是你数据长度,不是你的list容量吧,加了就不对了吧
2017-07-10 22:13
快速回复:ArrayList中的size问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039913 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved