Java代码改变数组元素 java定义变长数组

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中怎么修改ArrayList()中元素的值?

1、什么是ArrayList :

ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:

(1)动态的增加和减少元素

(2)实现了ICollection和IList接口

(3)灵活的设置数组的大小

2、ArrayLis的创建以及增删改查方法:

(1)ArrayList的创建以及元素的添加:

ArrayList 变量名 = new ArrayList(); //()中也可传参。

注释:上面是创建一个空的ArrayList列表。当我们想往列表中传递元素的时候是通过.add()的方法来进行赋值的。看一下下面的案例。另外要想输出出列表中的元素的话要通过for循环遍历:

public class test {

public static void main(String[] args) {

ArrayList lis = new ArrayList();

lis.add("tony");

lis.add("tom");

lis.add("jack");

lis.add("mary");

lis.add("even");

for(int i=0;ilis.size();i++){

String result = (String)lis.get(i);

System.out.println(result);

}

输出结果如下:

tony

tom

jack

mary

even

(2)ArrayList中元素的删除:

注释:变量名.remove(int Index); //通过.remove(int Index)方法来进行删除。

这里直接传入要删除元素的下标即可。当然也可以直接传入值进行删除。如果你觉得用下边的方式比较麻烦那可以直接输入要删除项的值。

package com.java.demo_9;

import java.util.ArrayList;

public class Arraylist {

public static void main(String[] args) {

ArrayList lis = new ArrayList();

lis.add("tony");

lis.add("tom");

lis.add("jack");

lis.add("mary");

lis.add("even");

System.out.println("---------------------------------");

System.out.println("ArrayList原列表元素:");

for (int i = 0; i  lis.size(); i++) {

String result = (String) lis.get(i);

System.out.println(result);

}

System.out.println("---------------------------------");

System.out.println("删除元素后的ArrayList列表:");

lis.remove(1);

for (int i = 0; i  lis.size(); i++) {

String result = (String) lis.get(i);

System.out.println(result);

}

System.out.println("---------------------------------");

}

}

结果:

因为我指定的是lis.remove(1);

index是从0开始起始的因此1代表第2个元素。因此删除的是tom这个元素。

ArrayList原列表元素:

tony

tom

jack

mary

even

---------------------------------

删除元素后的ArrayList列表:

tony

jack

mary

even

---------------------------------

(3)ArrayList中元素的修改注释:

ArrayList方法中有一个.set方法(变量.set(index, element);)。

通过这个方法可以修改列表中的值。(index指定下标,element指定要修改后元素的值)。一起来看一下下面的示例:

package com.java.demo_9;

import java.util.ArrayList;

public class Arraylist {

public static void main(String[] args) {

ArrayList lis = new ArrayList();

lis.add("tony");

lis.add("tom");

lis.add("jack");

lis.add("mary");

lis.add("even");

System.out.println("---------------------------------");

System.out.println("ArrayList原列表元素:");

for (int i = 0; i  lis.size(); i++) {

String result = (String) lis.get(i);

System.out.println(result);

}

System.out.println("---------------------------------");

System.out.println("修改后的ArrayList列表:");

//lis.remove("tom");

lis.set(2, "lucy");

for (int i = 0; i  lis.size(); i++) {

String result = (String) lis.get(i);

System.out.println(result);

}

System.out.println("---------------------------------");

}

}

结果:

通过下面的结果可以看出第3个下标中的值已经被改变了。本来是jack现在更改成了lucy。

ArrayList原列表元素:

tony

tom

jack

mary

even

---------------------------------

修改后的ArrayList列表:

tony

tom

lucy

mary

even

---------------------------------

(4)ArrayList中元素的查找:

注释:.contains()是用来判断一个元素是否包含在另一个元素中的。

所以这里是判断查找的元素是否包含在列表中。返回值方面我直接用的是打印的方法。也可以通过boolean,return的方式返回。

案例1:

import java.util.ArrayList;

public class tes {

public static void main(String[] args) {

ArrayList lis = new ArrayList();

lis.add("tony");

lis.add("tom");

lis.add("jack");

lis.add("mary");

lis.add("even");

if(lis.contains("vivian")){

System.out.println("包含此元素!");

}

else{

System.out.println("该元素不存在!");

}

}

}

结果:

返回结果参照代码。找到了就打印“包含此元素,没找到就显示元素不存在。

案例2:

package com.java.demo_9;

import java.util.ArrayList;

public class ArrLis {

public static void main(String[] args) {

ArrayList list =new ArrayList();

list.add("tony");

list.add("tom");

list.add("jack");

list.add("kevin");

for(int i=0;ilist.size();i++){

String result =(String )list.get(i);

System.out.println(result);

}

System.out.println("+++++++++++++++++++++++++++++++++++++");

ArrayList list1 = new ArrayList();

for(int i=0;ilist.size();i++){

String res = (String)list.get(i);

if(list.contains("kevin")){

list1.add("kevin");

System.out.println(list1);

break;

}else{

System.out.println("没找到该元素!");

break;

}

}

}

}

结果:

因为列表中中包含"kevin"这个元素所以返回值为该元素。如果列表中没有该元素返回值为“没有找到该元素!”。

注意事项:我是重新设定了一个新空ArrayList(list1)。目的就是为了如果找到该值把这个值直接放到新的ArrayList中。另外if,else用了2次break。就是只要找到或者没找到就退出的意思。如果不这么写那么for循环每找一次结果就会打印一次,这显然是不必要的。

java替换数组中的某一个数

可以使用如下的代码:

arrays.aslist(yourarray).contains(yourvalue)

但这并不适用于基本数据类型的数组。

在java8之后,你可以使用stream来检测int,double,long类型的数组是否包含某个数值。(分别用intstream,

doublestream和longstream),例如:

int[]

a

=

{1,2,3,4};

boolean

contains

=

intstream.of(a).anymatch(x

-

x

==

4);

对于数组的一些操作,你可以上秒秒学了解相关的知识。

java把组数作为参数,尝试用两种方式改变数组的元素,结果不同的原因?

配合内存分布图

当没有注释的代码时,此时在main方法中调用change方法,然后将数组作为参数传递,此时传递的是地址值。虽然main方法中的arr和change方法参数里的arr看似名称一致,但是实际在栈中会有两份。就和上图一样。

本来main方法中的arr就是指向0x1122地址的数组,然后将这个地址赋给了change方法参数里的arr,所以此时change方法里的arr也指向了0x1122地址的数组。所以如果对这个数组里的内容进行改动,通过两个arr访问都是一样的。所以通过change改动数组内容,main方法中也能够看到修改后的内容

如果加上注释的那一行代码。因为重新new一个新的数组,然后将其地址值改成了0x3344,所以change方法里的arr不再指向0x1122,所以你无论怎么修改内部数据,和main方法中的arr也没有关系

如上做一个简单的总结

就比如有两个人共用一个卫生间。一个人很邋遢给厕所里搞得很脏,另一个人进去就能看到厕所很脏

如果两个人各有一个卫生间。一个人哪怕在厕所生火做饭,另一个人也看不到

用java定义一个方法将一个数组的元素的值改为另一个数组元素的值

public static void main(String[] args){ /** * 1、Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示 */ int[] arr = new int[10]; for (int i = 0; i arr.length; i++){ arr[i] = i; System.out.println(i + "," + arr[i]); }} public static void main(String[] args){ /** * 2、修改上述程序,将数组的赋值改为从键盘上输入的10个整数 */ int[] arr = new int[10]; System.out.println("请依次输入10个整数"); for (int i = 0; i arr.length; i++){ System.out.println("请输入第" + (i + 1) + "个整数:"); Scanner input = new Scanner(System.in); arr[i] = Integer.parseInt(input.nextLine()); } for (int i = 0; i arr.length; i++){ System.out.println(i + "," + arr[i]); } /** * 3、修改上述程序,添加代码,实现从10个数中找到最大值和最小值,并显示。 */ int max = arr[0]; // 将数组的第一个元素赋给max int min = arr[0]; // 将数组的第一个元素赋给min for (int i = 1; i arr.length; i++){ // 从数组的第二个元素开始赋值,依次比较 if (arr[i] max){ // 如果arr[i]大于最大值,就将arr[i]赋给最大值 max = arr[i]; } if (arr[i] min){ // 如果arr[i]小于最小值,就将arr[i]赋给最小值 min = arr[i]; } } System.out.println("最大值是:" + max); System.out.println("最小值是:" + min); /** * 4、修改上述程序,添加代码,去掉最大值和最小值,然后计算剩下的数的平均值,并显示 */ int sum = 0; for (int i = 0; i arr.length; i++){ sum += arr[i]; } sum = sum - max - min; // 去掉最大值和最小值的总和 double average = sum / (arr.length - 2); System.out.println("平均值:" + average);}


本文名称:Java代码改变数组元素 java定义变长数组
本文URL:http://csdahua.cn/article/hhhjpe.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流