Ⅰ java作业 如何给一个数组动态赋值
//这里提供下实现思路,不保证高效,如果想看高效的实现方式,可以看看ArrayList的实现源码
//数组
int[]is=newint[1];
//标记数组的非空长度
intsize=0;
publicint[]add(intt){
//如果数据长度大于等于数组长度,则扩充数组
if(size>=is.length){
//每次扩充10个长度
int[]temp=newint[size+10];
//将is的数据拷贝到临时数组中
笑含for(inti=0;i<is.length;i++){
temp[i]=is[i];
谈升信}
is=temp;
含轮}
//给数组赋值
is[size++]=t;
}
Ⅱ java 数组赋值
int[] b;int[] a ={1,2,3,4};b=a;
答:可以这样对数组进行赋值。
但是这种方式对数组进行赋值, 实际上是一种浅层复制.
也就是说,b实际上就是a,它们的内存地址值都是一样的, 当a发生改变,那么b也会跟着改变 。
为了真正意义上实现赋值,那么我们应该对数组进行深层复制。
深层复制后,无论a怎么改变,都不会影响到b。
具体代码如下
package core.com;import java.util.Arrays;public class DemoCopy { public static void main(String[] args) { //---------浅层复制-------- int[] a; int[] b = {1,2,3,4}; a=b;//浅层复制. 当b改变的时候,a会跟着改变 System.out.println(Arrays.toString(a));//输出数组a,[1,2,3,4] b[0] = 5;//改变数组b , 数组a也会跟着改变 System.out.println(Arrays.toString(a));//输出数组a,[5,2,3,4] System.out.println(a==b);//输出true a就是b //-----------分割线-------- //深层复制方法一: String[] c ; String[] d = {"a","b","c"}; c = new String[d.length]; // 需要初始化数组长度 for (int i = 0; i < d.length; i++) {//循环复制, c[i] = d[i]; } d[0]="y";//改变数组d, 不会影响c System.out.println(Arrays.toString(c));// System.out.println(c==d); //-------------分割线--------- //深层复制方法二: int[] ary1; int[] ary2 = {8,8,8}; ary1 = new int[ary2.length]; System.array(ary2, 0, ary1, 0, ary2.length);//调用函数进行深层复制 ary2[0]=6;//改变数组ary2,并不会影响ary1 System.out.println(Arrays.toString(ary1)); System.out.println(ary1==ary2); }}
控制台输出
[1, 2, 3, 4][5, 2, 3, 4]true[a, b, c]false[8, 8, 8]false
Ⅲ java 给数组赋值
还是用例子来说话吧:
比如
A a[];//声明一个数组引用,它指向的数组的元素必须是A型或者A的子类型。
a=new A[10];//创建一个A类型数组,并且让引用a指向这个数组。
A=new B[100];//创建一个B类型数组,并且让引用a指向这个数组,这个时候B必须是A的子类,否则编译不通过。
从上面看到,长度是在数组被创建时才指定的。数据引用本身只知道自己指向的是什么类型的数组。
实际上,java的数组和对象有着许多相似的地方,完全可以把数组当作对象来看。长度length不过是数组的一个属性,不同的数组对象此属性可相同也可以不同。
对象的引用之间,只要类型相同,就可以相互赋值,数组也是这样的。
2楼的真是肤浅,如果数组没用的话,java还保留它干嘛。在读取文件时还不是要经常用到数组来缓冲吗?
Ⅳ java数组类初始化如何赋值
Comparable[] s={new Comparable(3),new Comparable(20),new Comparable(13)};
估计也只能这样子了.这么写不能直接指定数组的长度.
数据特别多的话,最好是把你的数据用个int数组包装起来,再写个循环.
Ⅳ 在java中定义一个数组对象怎么赋值
new Shuzu(new char[]{'我'});new Shuzu(new char[]{'老'})); ————相当于ss[0].sz[0]={'我'};ss[1].sz[0]={'老'};
就在这里,这里你用了两次new,也就意味着,你生成了两个不同的Shuzu类的对象出来,分别的char[]{'我'}和new char[]{'老'},所以,当你在之后 System.out的时候,读到ss[0].sz[1]和ss[1].sz[1]时,其实这两个变量里是没有值的,
Ⅵ Java给数组中的数组赋值
packagecom.oceanlive.demo;
publicclassTest{
publicstaticvoidmain(String[]args){
Object[]monitorsys=newObject[4];//定义最大的数组容器
Object[]situation=newObject[2];//定义第一个元素
Object[]sms=newObject[2];//定义第二个元素
Object[]rule=newObject[2];//定义第三个元素
Object[]alertsdb=newObject[2];//定义第四个元素
situation[0]=1;
monitorsys[0]=situation;//赋值操作
monitorsys[1]=sms;
monitorsys[2]=rule;
monitorsys[3]=alertsdb;
//打印的就是第一个元素的数组的地址值(需要强制转换成Object对象数组,才能从输出)
System.out.println(((Object[])monitorsys[0])[0]);
}
}
Ⅶ java中,数组可以怎么赋值,几种赋值方法
public class TempArray {
public static void main(String[] args) {
//声禅丛孝明数值型数组
int[] array = {1, 2};
int[] array2 = new int[4];
//新增一个数组长度
array = Arrays.Of(array, array.length+1);
//将3这个数值赋值个数组索引 2 的位置,也就是最后面追加
array[array.length-1] = 3;
System.out.println(array2.length); //Result: 4
上面用的是数组,你也可以用 ArrayList 数组列表,是List的一个实现。
Ⅷ JAVA中如何创建一个二维数组,然后给二维数组赋值!
普通的赋值是:int[][]i={{1,2,3},{2,3,4},{1,3,4}};
如果是其他情况可以这样:比如:
importjava.util.*
publicclassTT(){
publicstaticvoidmain(String[]args){
intm=0;
for(inti=0;i<5;i++){
for(intj=0;j<5;j++)
a[i][j]=m;
m++;
}
}
}
这是一个给二维数组赋值的例子把0到25赋值给数组a。
其他还有,你自己多看看书,练习一下
Ⅸ java怎样给数组赋值
Object[] array = new Object[ int size ];/Object array[] = new Object[ int size ];size 是数组大小
eg: String[] str = new String[ 10 ];
str[ 0 ] = "1"; str[ 1 ] = "1";
Object[] array = {obj1,obj2,==};/Object array[] = {obj1,obj2,==};
Object[] array = new Object[]{obj1,obj2,==};/Object array[] = new Object[]{obj1,obj2,==};
遍历:
for(int i = 0;i < array.length;i++){
System.out.println( array[ i ] );
}
或者
for(Object obj : array){
System.out.println( obj );
}