CodeGym /Java Blog /Toto sisi /舊級別 07
John Squirrels
等級 41
San Francisco

舊級別 07

在 Toto sisi 群組發布

信息技術

舊級別 07 - 1始於 20 世紀末的計算機革命促成了 90 年代互聯網的誕生。那是更大革命的開始。互聯網創造的效果就像工業化一樣。但最美味的是這個過程才剛剛開始。

新世界

站點數量超過2億。那裡有 30 億互聯網用戶。互聯網拍賣、網站、在線商店、互聯網服務。信息技術產業每年增長20%-30%。這是可怕的利率。而且它還在不斷增長。在矽谷(世界高科技產業的主要中心)的過去 10 年裡,每 2 個月就會創建一家公司,事後耗資數十億美元。更不用說像 Facebook(2200 億美元)、亞馬遜(1400 億美元)和谷歌(3500 億美元)這樣的互聯網明星了。如果沒有互聯網,所有這些公司都不會出現。所有這些都導致​​對 IT 專家的高需求。世界高科技產業需要:軟件開發人員、設計人員、QA測試人員、架構師、經理、系統管理員等專家。

成為一名 IT 專家是件好事

舊級別 07 - 2如果您是 IT 專家,那麼現在正是您的黃金時間。你可以在大公司工作,住在小鎮上,也可以在外國公司工作。例如,你的收入可能比在歐盟低兩倍,但你的收入將是當地勞動力市場的 3-10 倍。城鎮越小,差異越大。您將獲得寶貴的經驗、豐厚的收入和光明的未來。有時您會去雇主辦公室出差。如果你非常喜歡它,你可能會搬到那裡。 水漲船高。為什麼不是天時地利人和的船呢?這也是一門藝術。

你已經達到了一個新的水平

7級

舊級別 07 - 3

1 Elly,數組

- 嘿,阿米戈! - 怎麼了,艾莉? - 今天我將向您介紹一個有趣的新實體——數組。數組是一種特殊的數據類型,可以存儲多個值。 舊級別 07 - 4- 我將從類比開始。讓我們比較一下普通的房子和高層的房子。房子被一個家庭佔用,而高層建築被分成公寓。您需要指定唯一的地址才能給住在這所房子裡的家庭寫信。對於住在公寓的家庭,您必須另外指定公寓號。 - 是的,這很清楚。 - 所以,數組變量就像一座高層建築。您可以在其中存儲多個值。這樣的變量有一些公寓(單元格)。每間公寓都可以通過其編號(索引)訪問。為此,在方括號中的變量名之後,您必須指定所訪問單元格的索引。這很簡單。 - 但願如此。 - 數組變量(高層建築)可以是任何類型,所以你只需要寫TypeName[] variable_name而不是TypeName variable_name. - 以下是您可以使用數組執行的操作的示例: 舊級別 07 - 5- 多麼令人興奮!- 數組變量需要額外的初始化。 - 為什麼這樣? - 一個普通的變量在聲明之後就可以使用了。至於數組,就稍微複雜一點: - 首先,你需要創建一個包含 N 個元素的容器,然後你可以將值放入其中。 舊級別 07 - 6- 是的。現在變得更清楚了。-關於數組的 基礎知識:
  1. 該數組由多個單元格組成。
  2. 通過指示其編號來訪問每個單元格。
  3. 所有細胞都是同一類型。
  4. 在 n 個元素的數組中,單元格的索引為 0,1,2,...,n-1。數組中沒有索引為 n 的單元格。
  5. 所有單元格的初始值為 null,對於基本類型 - 0、0.0 對於小數類型,false - 對於布爾類型,與簡單的未初始化變量完全相同。
  6. String[] list 只是一個變量的聲明。首先你需要創建一個數組(容器)並將其放入變量中,然後使用它。請參見下面的示例。
  7. 當你創建一個對像數組(容器)時,有必要指定它的長度(它將有多少個單元格)。為此,您需要編寫一個命令: TypeName 是將存儲在數組單元格中的值的類型。new TypeName[n];
舊級別 07 - 7- 例子: 舊級別 07 - 8

2 Risha,內存中數組的排列

- 嘿,阿米戈!讓我告訴你它是如何在內存中工作的: 舊級別 07 - 9- 這個 345 是什麼? - 事實上,我是從空中摘下來的,但通常情況下,它是包含單詞 «Stop» 的字符串的地址。- 至於數組,它有點複雜:
舊級別 07 - 10
- 155,166,177 是否也是從代表右邊字符串地址的帽子中拉出來的數字? - 是的。你猜對了是件好事。請注意,在第二張圖片中,有一個額外的對象 - 一個包含 10 個單元格的數組。 - 一切都清楚了,謝謝。一張圖片勝過千言萬語。謝謝你,里沙。

3 Risha,數組示例 Array

- 我想給你幾個例子,說明你可以用數組做一些有趣的事情: 例子 1. 舊級別 07 - 11例子 2. 舊級別 07 - 12例子 3. 舊級別 07 - 13例子 4. 舊級別 07 - 14例子 5. 舊級別 07 - 15

4 Diego,創建和使用數組的任務

- 嘿,阿米戈!伙計,這裡有幾項任務給你:
任務
1個 1. 一個包含 20 個數字的數組的最大值
1. 在方法initializeArray()中:
1.1。創建一個包含 20 個數字的數組
1.2。從鍵盤讀取 20 個數字並用它們填充數組
2. 方法max(int[] array)應該找到數組元素的最大數量

2個

2. 倒序字符串數組
1. 創建一個包含 10 個字符串的數組。
2.從鍵盤讀取8個字符串,存入數組。
3. 將整個數組(10 項)的內容倒序顯示在屏幕上。每個項目都應該在一個新行上。

3個 3. 2 個數組
1. 創建一個包含 10 個字符串的數組。
2. 創建另一個包含 10 個數字的數組。
3. 從鍵盤讀取10個字符串,填入字符串數組。
4. 將字符串數組的每個單元格中的字符串長度寫入具有相同索引的數字數組的單元格中。在屏幕上顯示數字數組的內容。每個值都應該在一個新行上。
4個 4. 倒序數字數組
1. 創建一個包含 10 個數字的數組。
2.從鍵盤讀取10個數字,存入數組。
3. 將數組元素倒序排列。
4. 將結果顯示在屏幕上。每個值都應該在一個新行上。
5個 五、一大兩小數組
1、創建一個20個數的數組。
2. 從鍵盤讀取 20 個數字並用它們填充數組。
3. 創建兩個數組,每個數組包含 10 個數字。
4. 將大數組的數字複製到兩個小數組中:一半的數字複製到第一個數組,另一半複製到第二個數組。
5. 在屏幕上顯示第二個小陣列。每個值都應該在一個新行上。

5 Elly,ArrayList 與 Array

- 這就是我。 - 嗨,艾莉! - 今天我們有一個令人興奮的新話題!現在我將向您介紹一個有趣的新類ArrayList- 哦,新班級?哇!它有什麼作用? - 讓我從一個小背景故事開始。程序員們不喜歡數組的一個特性:它的大小是不可能改變的。想在數組中多存三項,但空餘空間只有一項怎麼辦? - 解決空間不足問題的唯一方法是創建一個包含所有元素的非常大的數組。但這通常會導致內存使用效率低下。例如,如果在數組生命週期的 99% 中您只需要在數組中存儲 3 個元素,而僅在 1% - 100 個元素中,您將不得不創建包含 100 個元素的數組。 - 那麼程序員想出了什麼? - 他們編寫了類ArrayList來完成與 Array 相同的工作,但可以改變其大小。 - 一個有趣的舉動。他們是怎麼做到的? - 每個ArrayList對像都在內部存儲一個普通的元素數組。當您從ArrayList中讀取元素時,它會從其內部數組中讀取它們。當您寫入元素時,它會將它們寫入內部數組。比較: 舊級別 07 - 16- 那麼 ArrayList 的優勢是什麼?至於我,代碼變長了。 - 首先,ArrayList支持數組中不具備的一些附加功能,而這些功能是程序員經常使用的。例如,在數組中間插入和刪除元素而不留空洞。 - 第二,ArrayList 可以改變它的大小。當ArrayList需要在其內部數組中再存儲一個元素,並且沒有可用空間時,ArrayList內部會發生以下情況:
  1. 另一個數組被創建,兩倍大。
  2. 舊數組的所有元素都被複製到新數組中。
  3. 一個新數組存儲在 ArrayList 對象的內部變量中,舊數組被聲明為垃圾(我們只是不再存儲它的引用)。
舊級別 07 - 17以及如何使用 ArrayList? - 實際上,以與數組相同的方式。看這裡。讓我們比較ArrayList的工作和數組的工作。例如,讓我們解決以下任務:«程序應從鍵盤讀取 10 字符串並以相反的順序將它們顯示到屏幕上»。- 檢查這個: 舊級別 07 - 18- 我在兩列中用一種顏色繪製了等效的動作。 - 看起來不一樣,但如果你仔細觀察,一切都是一樣的。 - 是的。現在我們在使用ArrayList時沒有方括號。相反,我們使用方法getsetadd- 我注意到了。但它仍然非常相似。

6 迭戈,ArrayList任務

- 你又什麼都不做了嗎?你是機器人,不是嗎?機器人總是忙於某事。這裡有一些任務可以讓你保持清醒。但讓我們從一些技巧開始。-提示 1: 列表最常見的意思是ArrayList。-提示 2: 字符串表示類型String。-技巧 3: 創建字符串列表最常見的方法是ArrayList<String> list = new ArrayList<String>();
任務
1個 任務 1. 列表中的 5 個不同字符串
1. 創建一個字符串列表。
2. 向列表中添加 5 個不同的字符串。
3. 在屏幕上顯示它的大小。
4. 將列表內容顯示到屏幕上。每個值都應該在一個新行上。使用循環。
2個 任務 2。5 行:«101»、«10​​2»、«10​​3»、«10​​4»、«10​​5»
1. 創建一個字符串列表。
2. 向列表中添加 5 個字符串。«101», «102», «103», «104», «105»。
3.刪除第一個,中間一個和最後一個。
4. 將列表內容顯示到屏幕上。每個值都應該在一個新行上。使用循環。
5. 在屏幕上顯示它的大小。(刪除一個條目後,其他條目的索引會發生變化。例如,如果我們刪除第一個元素,則第二個元素將變為第一個元素)。
3個 任務 3。5 行倒序
1. 創建一個字符串列表。
2. 從鍵盤讀取 5 個字符串,然後將它們添加到列表中。
3.將它們倒序排列。
4. 將列表內容顯示到屏幕上。每個值都應該在一個新行上。使用循環。
4個

任務 4. 將 5 個字符串添加到列表的開頭
1. 創建一個字符串列表。
2.從鍵盤上讀出5個字符串。將這些字符串添加到列表的開頭,而不是結尾。
3. 將列表內容顯示到屏幕上。每個值都應該在一個新行上。使用循環。

5個 任務 5. 刪除最後一個字符串並將其添加到列表的開頭
1. 創建一個字符串列表。
2.從鍵盤上讀出5個字符串。將這些字符串添加到列表中。
3. 刪除最後一個字符串並將其添加到列表的開頭。重複此動作13次。
4. 將列表內容顯示到屏幕上。每個值都應該在一個新行上。使用循環。

7 Risha,泛型

- 現在,另一個很棒的話題。 - 這一天充滿驚喜。這就像一個真正的生日。 - 今天我會告訴你泛型是什麼。泛型是具有參數的類型。在 Java 中,容器類使您能夠指定其內部對象的類型- 當我們聲明一個泛型變量時,我們指定了兩種類型而不是一種:變量的類型和變量中存儲的數據類型。 一個很好的例子是 ArrayList。當我們創建一個新的 ArrayList 類型的對象/變量時,最好指定要存儲在列表中的值的類型。 舊級別 07 - 19- 聽起來很刺激。我特別喜歡你所說的 任何類型。 - 這似乎很好。事實上,如果在一種方法中將字符串放入 ArrayList,而在另一種方法中處理其內容並期望只有數字,程序就會崩潰。 - 我懂了。 -到目前為止,我們不會創建自己的 帶有類型參數的類,我們將學習使用 Java 創建者編寫的類。 - 我可以使用任何類作為類型參數,即使是我自己編寫的類嗎? - 是的,任何類型,原始類型除外。所有類參數都必須從類 Object 繼承。 - 所以我不能寫ArrayList<int>,可以嗎? - 你不能。但是 Java 開發人員已經為原始類型編寫了他們的非原始類似物——繼承自的類對象。它看起來是這樣的: 舊級別 07 - 20- 原始類型和模擬類(包裝類)可以很容易地相互分配: 舊級別 07 - 21- 很好。然後我想我會更頻繁地使用 ArrayList。

8 Risha,ArrayList 的示例,泛型

舊級別 07 - 22- 現在我會給你真正有用的東西。以下是一些使用 ArrayList 和泛型的方便示例: - 示例 1。 舊級別 07 - 23- 示例 2。 舊級別 07 - 24- 示例 3。 舊級別 07 - 25- 示例 4。 舊級別 07 - 26- 示例 5。 舊級別 07 - 27- 太棒了!所以,迭戈現在要給我一堆類似的任務,不是嗎? - 是的!

9 Diego, List<T> 任務

- 你終於自由了。我厭倦了為你記住這些任務。這裡還有一些可以讓你保持清醒:
在 Intellij Idea 中完成的其他任務
1個 1. 三個數組
1. 從鍵盤讀取20個數,保存在一個列表中,然後將它們排序到另外三個列表中:
列表1存儲能被3整除的數( x%3==0 )
列表2存儲能被2整除的數( x%2==0 )
列表 3 存儲其餘數字。
可同時被 3 和 2 整除的數字(例如 6)屬於兩個列表 – 列表 1 和列表 2。
2. 方法printList()應在新行上顯示列表的每個元素。
3. 使用方法printList()將這三個列表顯示到屏幕上。首先應該顯示列表 1,然後是列表 2,然後是列表 3。
2個 2. 5 words in reverse order
從鍵盤讀出5個words。將它們添加到一個字符串列表中,並以相反的順序將它們顯示到屏幕上。
3個 3. 單詞«here»
1. 創建單詞«stop», «look», «listen» 的列表。
2. 在每個單詞後添加一個包含 «here» 的字符串。
3. 顯示結果。列表的每個元素都應該在一個新行上。使用“for”循環。
4個 4. 字母 «r» 和 «l»
1. 創建一個單詞/字符串列表,填入任何你想要的內容。
2. 方法fix()應該:
2.1。從字符串列表中刪除所有包含字母 «r» 的單詞
2.2。將所有包含字母 «l» 的單詞加倍。
2.3. 如果單詞同時包含字母 «r» 和 «l»,則保留單詞不變。
2.4. 不要用其他詞做任何事情。

示例:
rose
willow
lyre
oak

輸出數據:
willow
willow
lyre
oak
5個 五、複製單詞
1、從鍵盤上讀出10個單詞/字符串,將它們添加到一個字符串列表中。
2. doubleValues 方法應該根據模式複制單詞:
a,b,c → a,a,b,b,c,c。
3. 顯示結果。列表的每個元素都應該在一個新行上。使用“for”循環。

10 教授

舊級別 07 - 28- 我找到了精彩的講座!因此,今天您將獲得有關數組和列表的最有價值的知識。它們在這裡: 關於 Java 中 ArrayList 的技巧

11 胡里奧

- 嘿,阿米戈!我很高興你能應付這一切——你應該得到獎勵:

12 松鼠船長

- 你好,士兵! - 早上好先生! - 我有一些好消息要告訴你。這是一個快速檢查以加強您的技能。每天都這樣做,你會很快提高你的技能。任務是專門為在 Intellij IDEA 中執行而設計的。
在 Intellij Idea 中完成的其他任務
1個 1. 倒序顯示數字
從鍵盤上讀出 10 個數字並填入列表。
以相反的順序在屏幕上顯示數字。使用循環。
2個 2. 將前 M 行移動到列表的末尾
從鍵盤讀取 2 個數字:NM。
從鍵盤讀取N 個字符串並用它們填充一個列表。
將前M行移動到列表的末尾
在屏幕上顯示列表。每個值都應該在一個新行上。
3個 3. 數組中的最大和最小數字
創建一個包含 20 個數字的數組。
用從鍵盤讀取的數字填充它。
查找數組中最大和最小的數字。
在屏幕上顯示由空格分隔的最大和最小數字。
4個 4. 從鍵盤讀取字符串,直到用戶輸入字符串“end”
創建一個字符串列表。
從鍵盤字符串中讀取(無論你想要什麼),將它們添加到列表中。
從鍵盤讀取字符串,直到用戶輸入字符串“end”。“結束”應省略。
在屏幕上顯示字符串。每個字符串都應該在一個新行上。
5個 5.砰!
編寫一個從 30 倒數到 0 的程序,並顯示 «Bang!» 在最後。該程序應每秒減少 10 次。使用下面的函數插入延遲:
Thread.sleep(100); //延遲十分之一秒。
示例:
30
29

1
0
砰!
6個 6. Family
創建一個Human 類,其中包含以下字段:String nameboolean sexint ageHuman fatherHuman mother。創建 9 個 Human 類的對象並填充它們,使其獲得兩個祖父、兩個祖母、一個父親、一個母親和三個孩子。將對象顯示到屏幕上。
提示:
如果您在 Human 類中編寫方法String toString(),那麼它將用於顯示一個對象。
示例輸出:
姓名:Anna,性別:女,年齡:21,父親:Paul,母親:Kate
姓名:Kate,性別:女,年齡:55
姓名:伊恩,性別:男,年齡:2歲,父親:邁克爾,母親:安娜
……
7 7. 移動一個修飾符static
移動一個static修飾符使程序編譯通過。
- 這些任務是針對果嶺的。我添加了更複雜的獎勵任務。僅適用於頂級槍支。
獎勵任務
1個 1.程序沒有編譯運行。修理它。
任務:從鍵盤讀取貓數據並將其顯示到屏幕上。
示例:
貓名為 Jinx,年齡為 6,體重為 5,尾巴 = 22
貓名為 Maisy,年齡為 8,體重為 7,尾巴 = 20
2個 2. 為程序添加新功能。
舊任務:程序讀取字符串,直到用戶按回車鍵輸入一個空行。然後它將小寫字母轉換為大寫字母(Mom 變成 MOM)並將它們顯示在屏幕上。
新任務:程序應讀取字符串,直到用戶按回車鍵輸入一個空行。該程序然後構建一個新列表。如果字符串的字符數為偶數,則重複該字符串,如果為奇數,則該字符串為三倍。
示例輸入:
Cat
Cats
Me
示例輸出:
Cat Cat Cat
Cats Cats
Me Me
3個 3.學習和練習算法。
從鍵盤讀取20個數字,並按降序顯示。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION