51,408
社区成员
发帖
与我相关
我的任务
分享
public class 文件名{
public static void main(String[] args){
//原数组
String[] names = {"哆哆","咪咪","发发","嘻嘻"};
//计算出新的长度(长度是原数组长度的1.5倍)
int oldCapacity = names.length;
int newCapacity = oldCapacity + (oldCapacity>>1);
//创建新数组
String[] newNames = new String[newCapacity];//{null,null,null,null,null,null}
//遍历原数组,将原数组中的元素复制到新数组中
//{"哆哆","咪咪","发发","嘻嘻",null,null}
for(int i = 0;i<names.length;i++){
newNames[i] = names[i];
}
//将新数组赋值给原数组
names = newNames;
//遍历原数组
for(String element : names){
System.out.println(element);
}
}
}
缺点:数组开辟空间是用来存放数据的,这种方式的删除会让空间越变越小
public class 文件名{
public static void main(String[] args){
//原数组
String[] names = {"哆哆","咪咪","发发","嘻嘻"};
//创建新数组
String[] newNames = new String[names.length-1];
//将原数组的元素复制到新数组中(除了要删除的元素)
int index = 0;//新数组的下标
for(String element : names){
if(!element.equals("发发")){
newNames[index] = element;
index++;
}
}
//将新数组赋值给原数组
names = newNames;
//遍历原数组
for(String element : names){
System.out.println(element);
}
}
}
public class 文件名{
public static void main(String[] args){
//原数组
String[] names = {"哆哆","咪咪","发发","嘻嘻"};
//数据的移位(将要删除的元素的后面元素往前挪一位)
for(int i = 2;i<names.length-1;i++ ){
names[i] = names[i+1];
}
//将最后一位赋值为null
names[names.length-1] = null;
//遍历原数组
for(String element : names){
System.out.println(element);
}
}
}
需求:设计一个方法,传入数组,返回最大值和最小值
public class 文件名{
public static void main(String[] args){
int [] is = {35,81,18,25,9};
int [] arr = getMaxAndMin(is);
System.out.println("最大值:" + arr[0]);
System.out.println("最小值:" + arr[1]);
}
public static int [] getMaxAndMin(int[] is){
int max = is[0];
int min = is[0];
for(int i = 1;i<is.length;i++){
if(max <is[i]){
max = is[i];
}
if(min > is[i]){
min = is[i];
}
}
int[] arr = new int[] {max,min};
return arr;
}
}
1.数组可以作为方法的参数传入 2.方法的返回值只能返回一个数据,要想返回多个数据,可以将多个数据打包成一个数组
需求:传入int数组,求最大值
public class 文件名{
public static void main(String[] args){
public static void main(String[] args){
//35,81,18,25,9,10,11,12,13 - 作为数组的元素
int max = getMax(35,81,18,25,9,10,11,12,13);
System.out.println("最大值为:" + max);
}
//注意:可变参数的底层就是数组
public static int getMax(int... is){
int max = is[0];
for(int i = 1;i<is.length;i++){
if(max < is[i]){
max = is[i];
}
}
return max;
}
//注意:可变参数后面不能接任何参数
public static void method(int i,String... ss){}
}
import java.util.Arrays;
public class 文件名{
public static void main(String[] args){
int[] is = {35,81,18,25,9,10,11,12,13};
//排序 - 9,10,11,12,13,18,25,35,81
Arrays.sort(is);
//搜索 - (注意:必须先排序,再查找,因为底层使用的是二分法查找)
//返回元素在数组中的下标;如果元素不在数组中则返回 -插入点-1
int index = Arrays.binarySearch(is,35);
System.out.println("搜索元素的下标为:" + index);
//拷贝数组/扩容数组
int[] newIs1 = Arrays.copyOf(is,is.length*2);
//拷贝数组(开始下标-包含,结束下标-不包含)
int[] newIs2 = Arrays.copyOfRange(newIs1,3,6);
//替换
Arrays.fill(newIs2,888);
//将数组转换为字符串
String str = Arrays.toString(newIs2);
System.out.println(str);
}
}