[請益] 煩請java的高手解答

看板Soft_Job作者 (Crable)時間9年前 (2016/03/23 10:31), 9年前編輯推噓7(7032)
留言39則, 15人參與, 最新討論串1/1
大家都知道java的陣列要用new去配置他 EX: int[] x=new int[5]; or int[] x; x=new int[5]; 今天要來請教各位的是不用new配置陣列 有人可能會想到這個方式 int[] x={0,0,0,0,0}; 但我說的不是這樣是先宣告陣列 之後才配置沒有馬上配置 EX: int[] x; 中 間 可 能 有 程 式 配置陣列x(不用new配置) ------------------- 我簡單的說明一下 通常來說: int[] x;這個是宣告有一個整數陣列 假設我現在不配置要先做其他的事以保留記憶體空間 做完之後再配置 一般來說會這麼寫: x=new int[5]; 可是今天如果不用new來配置空間那要怎麼做?? 大概就是像這樣 煩請各位幫小弟我解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.115.138.195 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1458700278.A.FD6.html

03/23 10:40, , 1F
java有專版,另外使用Collection就好了
03/23 10:40, 1F

03/23 10:41, , 2F
int[] x=new int[5]; 配置二個物件
03/23 10:41, 2F

03/23 10:43, , 3F
int[] x;配置一個物件。JAVA是純物件導向語言。
03/23 10:43, 3F

03/23 10:48, , 4F
省事就用ArrayList最後toArray
03/23 10:48, 4F

03/23 11:07, , 5F
樓樓上不對,new int[5]是配置一個物件,int[] x;沒有配置
03/23 11:07, 5F

03/23 11:10, , 6F
只是宣告一個參考,如果是物件欄位會初始化成null
03/23 11:10, 6F

03/23 11:11, , 7F
然後原po的問題,{0,0,0,0,0}這種只能用在宣告的時候
03/23 11:11, 7F

03/23 11:12, , 8F
這應該在專版問+1,而且我還真是看不懂你的問題
03/23 11:12, 8F

03/23 11:12, , 9F
之後才配置的話要用 x = new int[] {0,0,0,0,0};
03/23 11:12, 9F

03/23 11:15, , 10F
問題是{}的寫法,不在宣告的同時寫的話要怎麼寫嗎?
03/23 11:15, 10F

03/23 11:27, , 11F
要不要問我很討厭看到分號, 有沒有辦法不用分號寫 Java
03/23 11:27, 11F

03/23 11:27, , 12F
算了 = =a (答: 去寫 SWIFT :p)
03/23 11:27, 12F

03/23 11:33, , 13F
先把你的問題釐清,我也看不懂在問什麼XD
03/23 11:33, 13F

03/23 12:03, , 14F
我很認真看,也看不太懂,不然真的就像樓上說的用collection
03/23 12:03, 14F

03/23 12:03, , 15F
解決啊
03/23 12:03, 15F

03/23 12:04, , 16F
上面講的配置=instance??
03/23 12:04, 16F

03/23 12:19, , 17F
"配置" 二字直的直接翻譯應該是 "allocate" 吧 (台灣不
03/23 12:19, 17F

03/23 12:19, , 18F
像日本對技術用語有政府部門統一的管理和翻譯, 所以還是
03/23 12:19, 18F

03/23 12:19, , 19F
用英文吧...)
03/23 12:19, 19F
※ 編輯: a1632619699 (120.115.136.150), 03/23/2016 12:50:15

03/23 12:51, , 20F
樓上的,以前大學老師有說過,他說日本都有統一翻譯,我還在想
03/23 12:51, 20F

03/23 12:51, , 21F
怎麼可能,想不到是真的!!!!
03/23 12:51, 21F

03/23 12:58, , 22F
用new會怎樣嗎
03/23 12:58, 22F
不會怎樣只是這是教授給的題目(真的不是我龜毛故意找麻煩) ※ 編輯: a1632619699 (120.115.136.150), 03/23/2016 13:01:00 另外此篇也發至java專版了 ※ 編輯: a1632619699 (120.115.136.150), 03/23/2016 13:01:58

03/23 20:30, , 23F
new了就是給他 '連續'記憶體空間
03/23 20:30, 23F

03/23 20:35, , 24F
{0,0,0,0}也跟new出來一樣啊..陣列指向這四個 連續 記
03/23 20:35, 24F

03/23 20:35, , 25F
憶體位置
03/23 20:35, 25F

03/24 02:49, , 26F
教授可能要你做出類似陣列的功能吧
03/24 02:49, 26F

03/24 02:49, , 27F
但是java不允許操縱記憶體, 你只能用類似linked list方式做
03/24 02:49, 27F

03/24 02:50, , 28F
ArrayList應該也不行, 因為底層一樣是先new個100的陣列空間
03/24 02:50, 28F

03/24 07:05, , 29F
不用new 配置的用意是什麼?感覺不出有什麼實用價值
03/24 07:05, 29F
舉個例子大家應該就懂了 int[] x={0,0,0,0,0};<=這個就算是不用new了 但是他現在要求拆開 也就是 int[] x; x={0,0,0,0,0};(錯誤) 他要問的就是錯誤那邊要怎麼讓他能動 ※ 編輯: a1632619699 (220.132.225.117), 03/24/2016 07:46:01

03/24 10:46, , 30F
叫你老師去教有意義點的東西啦 = =a 怎麼讓它動喔, 這樣
03/24 10:46, 30F

03/24 10:47, , 31F
int[] tmp = {1,2,3,4,5}; int[] x = tmp; // 這行動了
03/24 10:47, 31F

03/24 11:00, , 32F
去java版,良葛格那方法你看看
03/24 11:00, 32F
我一直有在關注喔 謝謝你的提醒

03/24 16:14, , 33F
1. 你沒實體化,當然會錯誤 2.去JAVA板
03/24 16:14, 33F

03/24 16:18, , 34F
不過這個是她規定就是用在初始化,要達到動態建議用
03/24 16:18, 34F

03/24 16:18, , 35F
上面推的LinkedList
03/24 16:18, 35F

03/25 00:33, , 36F
開個新method: int[] newArr(int... ints)
03/25 00:33, 36F

03/25 00:33, , 37F
實作跟用法不用我講了吧?
03/25 00:33, 37F
我是第一次學程式學到這麼深的新手 我不知道你在說什麼0.0 ※ 編輯: a1632619699 (220.132.225.118), 03/25/2016 00:46:21

03/25 02:01, , 38F
用eclipse嗎,在宣告那行ctrl+1>extract method
03/25 02:01, 38F

03/25 02:02, , 39F
method spec 照樓上z大提示的修改。
03/25 02:02, 39F
文章代碼(AID): #1MyV_s_M (Soft_Job)