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];
}
};
}
}
写一个 自定义一个 ArrayList集合
最新推荐文章于 2024-10-20 17:09:42 发布
文章展示了一个名为MyArrayList的自定义类,该类实现了Iterable接口,支持动态扩展数组以添加元素,并提供了add方法和迭代器功能。示例代码中创建了一个MyArrayList实例,添加了一些字符串元素,并通过for-each循环遍历打印这些元素。
摘要由CSDN通过智能技术生成