写一个 自定义一个 ArrayList集合

文章展示了一个名为MyArrayList的自定义类,该类实现了Iterable接口,支持动态扩展数组以添加元素,并提供了add方法和迭代器功能。示例代码中创建了一个MyArrayList实例,添加了一些字符串元素,并通过for-each循环遍历打印这些元素。
摘要由CSDN通过智能技术生成
package com.HaveClass.startday07;

import java.util.*;

public class test06 {
    public static void main(String[] args) {
        MyArrayList ml = new MyArrayList();

        ml.add("abc");
        ml.add("asdfa");
        ml.add("fhfgh");
        ml.add("nbvmhjk");
        ml.add("dfg");
        ml.add("qwe");
        ml.add("uiyuiyu");
        ml.add("ui");

        System.out.println(ml);
        //ml 可以添加无限的元素 上面只是添加了几个而已 还可以继续添加的
        for (int i = 0; i < ml.size(); i++) {
            System.out.println(ml.get(i));
        }

        for (String s : ml){
            System.out.println(s);
        }
    }
}





class  MyArrayList implements Iterable<String>{

    int count;
    int forCount;
    String[] elementDate = new String[7];
    String[] elementNew;

    public boolean add(String o) {
        // 数组长度的判断
        if (count > elementDate.length - 1) {
            elementNew = elementDate;
            elementDate = new String[count + 1];

            int index = 0;
            System.arraycopy(elementNew, index, elementDate, index, count);
        }

        //  定义一个数组存放数据
        elementDate[count] = o;    // count 代指元素的个数
        count++;
        return true;
    }

    @Override
    public String toString() {
        return "MyArrayList{" +
                "count=" + count + Arrays.toString(elementDate) +
                '}';
    }

    public int size() {
        return count;
    }

    public String get(int i) {
        return elementDate[i];
    }


    @Override
    public Iterator<String> iterator() {
        return new Iterator<String>() {
            @Override
            public boolean hasNext() {
                if (forCount < elementDate.length-1) {
                    forCount++;
                    return true;
                }
                return false;
            }

            @Override
            public String next() {
                return elementDate[forCount];
            }
        };
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值