首页 / JAVA / Java数据结构——顺序表
Java数据结构——顺序表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java数据结构——顺序表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2495字,纯文字阅读大概需要4分钟。
内容图文
![Java数据结构——顺序表](/upload/InfoBanner/zyjiaocheng/608/c8cabafd5b8245d7a87ab6656a43f580.jpg)
public class MyArrayList<E extends Comparable<E>> implements List<E> {
private static final int CAPACITY = 10;
private E[] element;
private int size = 0;
private boolean flag;
public MyArrayList() {
element = (E[]) new Object[CAPACITY];
}
public MyArrayList(int capacity) {
this.element = (E[]) new Object[capacity];
}
//判断数组是否已满
private boolean isFull(){
if (size == element.length){
flag = true;
}else {
flag = false;
}
return flag;
}
@Override
//判断数组是否为空
public boolean isEmpty(){
if(size == 0){
flag = true;
}else {
flag = false;
}
return flag;
}
@Override
//头插
public void addHead(E value){
if(isFull()){
//扩容
Arrays.copyOf(element,element.length+(element.length>>1));
}
//数组所有数据后移一位
for(int i = size-1;i>=0;i--){
element[i+1] = element[i];
}
//头部添加
element[0] = value;
//元素个数+1
size++;
}
@Override
//尾插
public void addTail(E value){
if(isFull()){
//扩容
Arrays.copyOf(element,element.length+(element.length>>1));
}
//头部添加
element[size] = value;
//元素个数+1
size++;
}
//在第index位置插入值为value的元素
public void add(int index,E value){
if(isFull()){
//扩容
Arrays.copyOf(element,element.length+(element.length>>1));
}
//从第二位开始数据后移一位
for(int i = size-1;i>=index-1;i--){
element[i+1] = element[i];
}
//元素个数+1
size++;
//在index位置添加一个值为value的元素
element[index-1] = value;
}
//头部删除
public void removeHead(){
if(isEmpty()){
return;
}
//从第二位开始数据前移一位
for(int i = 1;i<size;i++){
element[i-1] = element[i];
}
//元素个数-1
size--;
}
//尾部删除
public void removeTail(){
if(isEmpty()){
return;
}
element[size-1] = null;
//元素个数-1
size--;
}
//删除第index个元素
public void remove(int index){
if(isEmpty()){
return;
}
//从第index位开始数据前移一位
for(int i = index;i<size;i++){
element[i-1] = element[i];
}
//元素个数-1
size--;
}
@Override
//查找顺序表是否包含这个元素
public boolean contains(E value){
if(isEmpty()){
return false;
}
for(int i = 0;i<size;i++){
if(element[i].compareTo(value) == 0){
flag = true;
}else{
flag = false;
}
}
return flag;
}
//修改第index个元素值
public boolean revise(int index,E value){
if(isEmpty() || index>size){
return false;
}
element [index-1] = value;
return true;
}
//获得第index个元素值
public E search(int index){
if(isEmpty() || index > size){
return null;
}
return element[index-1];
}
//打印顺序表
public StringBuilder print(){
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < size; i++) {
stringBuilder.append(element[i]+" ");
}
return stringBuilder;
}
//给顺序表添加元素
public void setArray(E[] array,int size){
this.size = size;
for(int i = 0;i<size;i++){
element[i] = array[i];
}
}
}
内容总结
以上是互联网集市为您收集整理的Java数据结构——顺序表全部内容,希望文章能够帮你解决Java数据结构——顺序表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。