002.数组的增删改查(2-5)

网友投稿 672 2022-11-17

002.数组的增删改查(2-5)

002.数组的增删改查(2-5)

package com.lll.demo03;public class Array { private int[] data; private int size; // 构造函数,传入数组的容量capacity构造Array public Array(int capacity) { data = new int[capacity]; size = 0; } // 无参数的构造函数,默认数组的容量capacity=10 public Array() { this(10); } // 获取数组的容量 public int getCapacity() { return data.length; } // 获取数组中的元素个数 public int getSize() { return size; } // 返回数组是否为空 public boolean isEmpty() { return size == 0; } // 向所有元素后添加一个新元素 public void addLast(int e) {// data[size] = e;// size++; add(size, e); } // 在所有元素前添加一个新元素 public void addFirst(int e) { add(0, e); } // 在index索引的位置插入一个新元素e public void add(int index, int e) { if (size == data.length) { throw new IllegalArgumentException("Add failed. Array is full."); } if (index < 0 || index > size) { throw new IllegalArgumentException("Add failed. Require index >= 0 and index <= size."); } for (int i = size - 1; i >= index; i--) { data[i + 1] = data[i]; } data[index] = e; size++; } // 获取index索引位置的元素 public int get(int index) { if (index < 0 || index >= size) { throw new IllegalArgumentException("Get failed. Index is illegal."); } return data[index]; } // 修改index索引位置的元素为e public void set(int index, int e) { if (index < 0 || index >= size) throw new IllegalArgumentException("Set failed. Index is illegal."); data[index] = e; } // 查找数组中是否有元素e public boolean contains(int e) { for (int i = 0; i < size; i++) { if (data[i] == e) return true; } return false; } // 查找数组中元素e所在的索引,如果不存在元素e,则返回-1 public int find(int e) { for (int i = 0; i < size; i++) { if (data[i] == e) return i; } return -1; } // 从数组中删除index位置的元素, 返回删除的元素 public int remove(int index) { if (index < 0 || index >= size) throw new IllegalArgumentException("Remove failed. Index is illegal."); int ret = data[index]; for (int i = index + 1; i < size; i++) { data[i - 1] = data[i]; } size--; return ret; } // 从数组中删除第一个元素, 返回删除的元素 public int removeFirst() { return remove(0); } // 从数组中删除最后一个元素, 返回删除的元素 public int removeLast() { return remove(size - 1); } // 从数组中删除元素e public void removeElement(int e) { int index = find(e); if (index != -1) remove(index); } @Override public String toString() { StringBuilder res = new StringBuilder(); res.append(String.format("Array: size = %d , capacity = %d\n", size, data.length)); res.append('['); for (int i = 0; i < size; i++) { res.append(data[i]); if (i != size - 1) res.append(", "); } res.append(']'); return res.toString(); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:007.增加logback日志样式的修改(logback-spring.xml)
下一篇:十. 图形界面(GUI)设计5.布局设计
相关文章

 发表评论

暂时没有评论,来抢沙发吧~