容器基础知识

容器

对于容器的要求:
首先,可以承载若干个字符串,每个字符串分开保存(连续还是离散,没有关系)
1.要求求长方法,求长方法就是求出容器可以放多少个字符串
2.要有基本的定位方法,通过角标来找到我放置的第几个String元素
3.要求替换方法,可以通过给出角标,和替换的值,来替换掉某个位置上的值要求放置一个元素到这个容器里面的方法,防止进来这元素以后这个元素以后这个元素需要给他一个角标
4.要求放置一个元素到这个容器里面的方法,放置进来这个元素以后这个元素需要给他一个角标
5.可以通过角标来删除一个元素,删除以后,后面的角标全部往前移动一位

public class StringADT {

	public String[] elements = new String[5];
	private int size = 0;
	public int length() {
		return 0;
	}
	public void add(String entry) {
		if(size >= elements.length) {
			elements = Arrays.copyOf(elements, elements.length + 10);
		}
		elements[size] = entry;
		size++;
	}
	
	public String get(int index) {
		if(index >= size) {
			return "角标超出界限";
		}
		return elements[index];
	}
	public void set(int index, String entry) {
		if(index >= size || index < 0) {
			return;
		}
		elements[index] = entry;
	}
	
	public void delete(int index) {
		if(index >= size || index < 0) {
			return;
		}
		String[] tempElement = new String[elements.length];
		int count = 0;
		for(int i = 0; i < elements.length; i++) {
			if(i == index) {
				continue;
			}
			tempElement[count] = elements[i];
			count++;
		}
		elements = tempElement;
		size--;
	}
	public void test() {
		System.out.println(Arrays.toString(elements));
	}
	
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RJoZDB6r-1692620320604)(E:\学习笔记\容器分类.png)]

ArrayList

ArrayList是List的实现类,其中的<>是叫做泛型
如果我们想要List,不能直接创建对象,但是可以找到JAVA提供的实现类型
泛型:
数组的特点是大小固定的放置相同类型元素的容器
使用容器时,放置的内容必须相似

	//List容器的特点
	//1.可以放置相同的元素
	//2.所有放置的元素都是有角标的
	//3.其容量大小是可变的
	ArrayList<String> list = new ArrayList<>();
		//添加
        list.add("lvjie");
		list.add("14");
		list.add("zs");
        //改
        list.set(0,"haha");
        //删
        list.remove(0);
        //查
        list.get(0);
        //查看长度
        lsit.size();
        //清除完
        list.clear();
        //定位
        list.indexOf("14");
        //是否包含当前元素
        boolean falg = list.contains();
        //容器是否为空
        boolean falg1 = list.isEmpty();
        

依次向ArrayList入33个数据,问,当前ArrayList底层容量是多少? 扩容了几次?

在此基础上再放一个,问容量是多少?扩容了几次?(明白容量和大小区别)

​ 初始化的时候,容量是0 但是默认初始化容量是10;

​ 当放第一个值的时候,扩容1次 从0->10;

​ 当放第11个值的时候,扩容1次,从10->15;

​ 当放第16个值的时候,扩容1次;从15->22;

​ 当放第23个值的时候,扩容1次,从22->33;

​ 所以第一问是基础问题,扩容了4次,容量现在是33;

​ 再放一个就是第34个值,扩容1次;容量现在是49

​ 所以容量是49,一共扩容了5次,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值