「java中数组中修改」哪些方法修改了原数组
今天给各位分享java中数组中修改的知识,其中也会对哪些方法修改了原数组进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java中数组的长度可以改变吗
java中数组的长度不可以改变。
java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。如果对需要用的数组的长度不确定,有两种解决办法:
第一种是在数组初始化的时候长度申请的足够大,这样做会造成内存空间的浪费,一般不推荐使用。
第二种是用java中提供的集合的方式存储数据,如List,Set和Map类型的对象存储数据,一方面这些类型的对象的长度都是动态增长的,另一方面这些类中提供了很多便于操作数据的方法,因此在对所需存储数据的多少不确定的时候,第二种方法比第一种方法更优秀。
java使用方法改变数组的值
package com.vortex.test.type;
public class ArrayUtilE {
/**
*
* @param arr 需要改变的数组
* @param index 需要改变的下标
* @param newValue 新的值
* E 泛型: 数组对象类型:例如 String、Integer或者自定义对象类型
* @return
*/
public E[] chageValue(E[] arr,int index,E newValue){
try{
arr[index] = newValue;
}catch(Exception e){
System.out.println(e.getMessage());
}
return arr;
}
public static void main(String[] args) {
ArrayUtilString au = new ArrayUtilString();
String[] arr = {"1","2","3","4"};
System.out.println("修改前");
for(int i=0;iarr.length;i++){
String val = arr[i];
System.out.println("第"+i+"个元素 为"+val);
}
arr = au.chageValue(arr, 0, "100");
System.out.println("修改后");
for(int i=0;iarr.length;i++){
String val = arr[i];
System.out.println("第"+i+"个元素 为"+val);
}
ArrayUtilUser user_au = new ArrayUtilUser();
User[] user_arr = {new User("张三",22),new User("李四",23),new User("王五",21)};
System.out.println("修改前");
for(int i=0;iuser_arr.length;i++){
User u = user_arr[i];
System.out.println("第"+i+"个元素 name="+u.getName()+" age="+u.getAge());
}
user_arr = user_au.chageValue(user_arr, 0, new User("赵六",25));
System.out.println("修改后");
for(int i=0;iuser_arr.length;i++){
User u = user_arr[i];
System.out.println("第"+i+"个元素 name="+u.getName()+" age="+u.getAge());
}
}
}
class User{
private String name;
private int age;
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
java怎样对数组里面的数据进行增、删、查、改?
您好, 删除delete(a,4); 删除index=4的数据,即a[4]=4 删除
批量删除delete(a,2)删除所有a[i]=2的数据,即a[2] 、a[6]、 a[7]删除
原题就这么写的,两个方法名一样,参数一样,功能却不一样。
class TestArray{
public static void main(String[]args){
int[] a ={0,1,2,3,4,5,2,2,1};
print(add(a,9,2));
print(delete(a,3));
select(a,2);
print(change(a,2,98));
print(deleteAll(a,2));
}
//增
public static int[] add(int[] array,int num,int index){
int[] result=new int[array.length+1];
for(int i=0,j=0;iarray.length;i++,j++){
if(j==index){
result[j]=num;
i--;
}else{
result[j]=array[i];
}
}
return result;
}
//删
public static int[] delete(int[] array,int index){
int[] result=new int[array.length-1];
for(int i=0,j=0;iarray.length;i++,j++){
if(i==index){
j--;
}else{
result[j]=array[i];
}
}
return result;
}
//查
public static void select(int[] array,int num){
int count=0;
for(int i=0;iarray.length;i++){
if(array[i]==num){
System.out.println("index"+i+"的值为"+num);
count++;
}
}
if(count==0)
System.out.println("找不到");
}
//改
public static int[] change(int[] array,int index,int num){
array[index]=num;
return array;
}
//批量删除
public static int[] deleteAll(int[] array,int num){
int j=0;
for(int i=0;iarray.length;i++){
if(array[i]==num){
j++;
}
}
int[] result=new int[array.length-j];
j=0;
for(int i=0;iarray.length;i++){
if(array[i]!=num){
result[j++]=array[i];
}
}
return result;
}
//打印数组
public static void print(int[] array){
for(int i:array){
System.out.print(i+" ");
}
System.out.println();
}
}
java中数组中修改的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于哪些方法修改了原数组、java中数组中修改的信息别忘了在本站进行查找喔。