CodeGym /Java 博客 /随机的 /旧级别 07
John Squirrels
第 41 级
San Francisco

旧级别 07

已在 随机的 群组中发布

信息技术

旧级别 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