以下方法在使用时需要new一个新对象调用,输出时需要一个输出方法,否则输出的是地址
1.最后位置插入
- //最后位置插入
- public void add(int element){
- if (size>=arr.length){
- capacity*=factor;
- int[] temp=new int[capacity];
- for (int i = 0; i
- temp[i]=arr[i];
- }
- arr=temp;
- }
- arr[size]=element;
- size++;
- }
2.任意位置插入
- //在任意位置插入
- //value 插入的值
- //index 插入的位置
- public void insert(int value,int index){
- if (index<0||index>size){
- System.out.println("插入位置不合理");
- return;
- }
- if (size== arr.length){
- //扩容
- capacity*=factor;
- int[] temp=new int[capacity];
- for (int i = 0; i
- temp[i]=arr[i];
- }
- arr=temp;
- }
- //插入位置以及插入位置以后的数据往后移动
- for (int i =size-1; i >=index ; i--) {
- arr[i+1]=arr[i];
- }
- //插入数据
- arr[index]=value;
- size++;
- }
3.删除第一个复合条件的元素
- //删除第一个复合条件的数据
- public boolean delFirst(int value){
- boolean isFound=false;
- for (int i = 0; i < size ; i++) {
- if(arr[i]==value){
- //删除
- for (int j = i; j
1 ; j++) { - arr[j]=arr[j+1];
- }
- size--;
- isFound=true;
- break;
- }
- }
- return isFound;
-
- }
4.删除所有复合条件的元素
- //删除所有复合条件的数据
- public boolean delete(int value){
- boolean isFound=false;
- //从后往前遍历可以删除两个相邻的复合条件的数据
- for (int i = size-1; i >=0 ; i--) {
- if(arr[i]==value){
- //删除
- for (int j = i; j
1 ; j++) { - arr[j]=arr[j+1];
- }
- size--;
- isFound=true;
- }
- }
- return isFound;
-
- }
5.在合适位置插入
- //在合适位置插入
- public void orderInsert(int value){
- if (size== arr.length){
- //扩容
- capacity*=factor;
- int[] temp=new int[capacity];
- for (int i = 0; i
- temp[i]=arr[i];
- }
- arr=temp;
- }
- //插入
- if(size==0){
- arr[0]=value;
- }else if(value>arr[size-1]){
- arr[size]=value;
- }else {
- for (int i = 0; i
- if(arr[i]>value){
- //插入位置以及之后的数据往后移动
- for (int temp=size-1;temp>=i;temp--){
- arr[temp+1]=arr[temp];
- }
- arr[i]=value;
- break;
- }
- }
- }
- size++;
- }
6.二分查找
- //二分查找
- public int search(int value){
- int left=0;
- int right=size;
- while (left<=right){
- int mid=(left+right)/2;
- if(arr[mid]==value){
- System.out.println("找到了,下标为"+mid);
- return mid;
- }else if(arr[mid]>value){
- right=mid-1;
- }else {
- left=mid+1;
- }
- }
- System.out.println("没找到");
- return -1;
- }
-
相关阅读:
计算经纬度坐标之间的真实距离
全球与中国板上芯片LED行业发展规模及投资前景预测报告2022-2028年
说说Object类下面有几种方法呢?
设计模式:代理模式详解
关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用
初始Cpp之 八、类和对象
复制集群架构设计技巧
GBase 8s 常用函数
操作系统MIT6.S081:P5->Isolation & system call entry/exit
JDBC版本简介
-
原文地址:https://blog.csdn.net/weixin_58474273/article/details/134277229