标签:return new otto lse imp contains wrap equal 操作
package array;
import java.util.Set;
public class Array<E> {
private E[] data;
private int size;//下一个要放置的位置索引 [0,size-1]是已经放置好的元素
//有参构造
public Array(int capacity) {
data=(E[])new Object[ capacity];//新建容量大小
size=0;//数组里元素个数
}
//无参构造
public Array() {
this(10);
}
//判断是否为空
public boolean isEmpty() {
return size==0;
}
//返回元素个数
public int getSize() {
return size;
}
//向数组中添加元素
public void add(E e) {
add(size,e);
}
//向头部添加元素
public void addFirst(E e) {
add(0,e);
}
//添加元素
public void add(int index,E e) {
if (index<0||index>size) {
throw new IllegalArgumentException("add failed");
}
if (size==data.length) {
resize(2*data.length);
}
for (int i = size-1; i >= index; i--) {
data[i+1]=data[i];
}
data[index]=e;
size++;
}
//扩容操作
private void resize(int i) {
E[] newarr=(E[])new Object[i];
for (int j = 0; j < size; j++) {
newarr[j]=data[j];
}
data=newarr;
}
//打印数组
@Override
public String toString() {
StringBuilder res=new StringBuilder();
res.append("size="+size+"acpiticy="+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();
}
//取出元素
public E get(int index) {
if (index<0||index>=size) {
throw new IllegalArgumentException("get failed");
}
return data[index];
}
//给指定位置赋值
public void set(int index,E e) {
if (index<0||index>=size) {
throw new IllegalArgumentException("set failed");
}
data[index]=e;
}
//数组中是否包含制定元素
public boolean contains(E e) {
for (int i = 0; i < size; i++) {
if (data[i].equals(e)) {
return true;
}
}
return false;
}
//数组指定元素的索引
public int find(E e) {
for (int i = 0; i < size; i++) {
if (data[i].equals(e)) {
return i;
}
}
return -1;
}
//删除第一个数
public E removeFirst() {
return remove(0);
}
//删除最后一个数
public E removeLast() {
return remove(size-1);
}
//删除指定索引数
public E remove (int index) {
if (index<0||index>=size) {
throw new IllegalArgumentException("remoce failed");
}
E res=data[index];
for (int i =index+1 ; i < size; i++) {
data[i-1]=data[i];
}
size--;
if(size==data.length/4) {
resize(data.length/2);
}
return res;
}
//删除指定元素
public void removeElement(E e) {
int index=find(e);
if (index!=-1) {
remove(index);
}
}
}
package array;
import java.util.Set;
public class Array<E> {
private E[] data;
private int size;//下一个要放置的位置索引 [0,size-1]是已经放置好的元素
//有参构造
public Array(int capacity) {
data=(E[])new Object[ capacity];//新建容量大小
size=0;//数组里元素个数
}
//无参构造
public Array() {
this(10);
}
//判断是否为空
public boolean isEmpty() {
return size==0;
}
//返回元素个数
public int getSize() {
return size;
}
//向数组中添加元素
public void add(E e) {
add(size,e);
}
//向头部添加元素
public void addFirst(E e) {
add(0,e);
}
//添加元素
public void add(int index,E e) {
if (index<0||index>size) {
throw new IllegalArgumentException("add failed");
}
if (size==data.length) {
resize(2*data.length);
}
for (int i = size-1; i >= index; i--) {
data[i+1]=data[i];
}
data[index]=e;
size++;
}
//扩容操作
private void resize(int i) {
E[] newarr=(E[])new Object[i];
for (int j = 0; j < size; j++) {
newarr[j]=data[j];
}
data=newarr;
}
//打印数组
public String toString() {
StringBuilder res=new StringBuilder();
res.append("size="+size+"acpiticy="+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();
}
//取出元素
public E get(int index) {
if (index<0||index>=size) {
throw new IllegalArgumentException("get failed");
}
return data[index];
}
//给指定位置赋值
public void set(int index,E e) {
if (index<0||index>=size) {
throw new IllegalArgumentException("set failed");
}
data[index]=e;
}
//数组中是否包含制定元素
public boolean contains(E e) {
for (int i = 0; i < size; i++) {
if (data[i].equals(e)) {
return true;
}
}
return false;
}
//数组指定元素的索引
public int find(E e) {
for (int i = 0; i < size; i++) {
if (data[i].equals(e)) {
return i;
}
}
return -1;
}
//删除第一个数
public E removeFirst() {
return remove(0);
}
//删除最后一个数
public E removeLast() {
return remove(size-1);
}
//删除指定索引数
public E remove (int index) {
if (index<0||index>=size) {
throw new IllegalArgumentException("remoce failed");
}
E res=data[index];
for (int i =index+1 ; i < size; i++) {
data[i-1]=data[i];
}
size--;
if(size==data.length/4) {
resize(data.length/2);
}
return res;
}
//删除指定元素
public void removeElement(E e) {
int index=find(e);
if (index!=-1) {
remove(index);
}
}
}
标签:return new otto lse imp contains wrap equal 操作
原文地址:https://www.cnblogs.com/pangpang321/p/10332122.html