Ⅰ 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 );
}