情報技術
20 世紀末に始まったコンピューター革命により、90 年代にインターネット (ウェブ) が誕生しました。そしてそれはさらに大きな革命の始まりでした。インターネットの創造の効果は工業化のようなものです。しかし、最も興味深いのは、このプロセスがまだ始まったばかりであるということです。新世界
サイト数は 2 億を超えます。インターネット ユーザーは 30 億人います。インターネットオークション、ウェブサイト、オンラインショップ、インターネットサービス。情報技術産業は毎年 20% ~ 30% 成長しています。恐ろしいレートです。そしてそれは成長し続けます。過去 10 年間、シリコンバレー (世界のハイテク産業の中心) では 2 か月ごとに会社が設立され、その後数十億ドルの費用がかかりました。Facebook(2,200億ドル)、Amazon(1,400億ドル)、Google(3,500億ドル)などのインターネット界のスターについては言うまでもありません。インターネットがなかったら、これらの企業はすべて出現しなかったでしょう。これらすべてにより、IT スペシャリストに対する高い需要が生じます。世界のハイテク産業では、ソフトウェア開発者、デザイナー、QA テスター、アーキテクト、マネージャー、システム管理者、その他の専門家が求められています。ITスペシャリストになるのは良いことだ
あなたが IT スペシャリストであれば、今がゴールデンタイムです。大企業に勤めながら小さな町に住むことも、外資系企業で働くこともできます。たとえば、EU に比べて収入は 2 倍少ないかもしれませんが、地元の労働市場に比べれば 3 ~ 10 倍多くの収入を得られます。町が小さければ小さいほど、その差は大きくなります。貴重な経験、十分なお金、明るい未来を手に入れることができます。場合によっては勤務先へ出張することもあります。そして、とても気に入ったら、そこに移転することもできます。 潮が満ちるとすべてのボートが浮き上がります。なぜ、適切なタイミングで適切な場所にこのような船が存在しないのでしょうか。これも芸術です。新しいレベルに到達しました
レベル7
1 エリー、配列
- やあ、アミーゴ! - どうしたの、エリー? - 今日は、新しい興味深いエンティティである配列について説明します。配列は、複数の値を格納できる特別なデータ型です。 - たとえ話から始めます。一般住宅と高層住宅を比べてみましょう。一軒家は一戸建てですが、高層ビルは複数のアパートに分かれています。家に住んでいる家族に手紙を書くには、固有の住所を指定する必要があります。アパートに住んでいる家族の場合は、さらにアパート番号を指定する必要があります。 - はい、それは明らかです。 - 配列変数は高層ビルのようなものですね。複数の値を保存できます。このような変数にはいくつかのアパートメント (セル) があります。各アパートメントには、その番号 (インデックス) によってアクセスできます。これを行うには、角かっこ内の変数名の後に、アクセスするセルのインデックスを指定する必要があります。とてもシンプルです。 - そうだといい。 - 配列変数 (高層ビル) はどのような型でもよいので、 のTypeName[] variable_name
代わりに と記述するだけで済みますTypeName variable_name
。- 配列を使って何ができるかの例を次に示します。 - なんとも興味深いですね。- 配列変数には追加の初期化が必要です。 - なぜそうなのか? - 通常の変数は、宣言後すぐに使用できるようになります。配列に関しては、もう少し複雑です。 - まず、N 個の要素のコンテナーを作成する必要があります。次に、そのコンテナーに値を配置します。 - はい。今ではそれがより明確になっています。-配列に関する 基本:
- 配列は複数のセルで構成されます。
- すべてのセルには、その番号を指定することでアクセスします。
- すべてのセルは同じ種類です。
- n 要素の配列では、セルのインデックスは 0、1、2、...、n-1 です。配列内にインデックス n のセルがありません。
- すべてのセルの初期値は、プリミティブ型の場合は null です。小数部の場合は 0、0.0、ブール型の場合は false で、単純な初期化されていない変数とまったく同じです。
- String[] リストは単なる変数の宣言です。まず配列(コンテナ)を作成し、それを変数に入れて使用する必要があります。以下の例を参照してください。
- オブジェクト配列 (コンテナ) を作成するときは、その長さ (セルの数) を指定する必要があります。これを行うには、コマンドを記述する必要があります。 TypeName は、配列のセルに格納される値のタイプです。
new TypeName[n];
2 Risha、メモリ内の配列の配置
- やあ、アミーゴ! メモリ内ですべてがどのように機能するかを説明しましょう。 - それで、この 345 は何ですか? - 実際には空中から取り出したのですが、通常は«Stop»という単語を含む文字列のアドレスです。- 配列に関しては、もう少し複雑です。3 Risha、配列の例 Array
- 配列を使って実行できる興味深い例をいくつか挙げたいと思います。 例 1. 例 2. 例 3. 例 4. 例 5.4 Diego、配列の作成と使用のタスク
- やあ、アミーゴ! ここであなたにいくつかのタスクを紹介します。タスク | |
---|---|
1 | 1. 20 個の数値の配列の最大数 1. メソッドInitializeArray()内: 1.1。20 個の数値の配列を作成します 。 1.2. キーボードから 20 個の数値を読み取り、配列にその数値を入力します。 2. メソッドmax(int[] array) は、配列の要素の最大数を見つける必要があります。 |
2 |
2. 逆順の文字列の配列 |
3 | 3. 2 つの配列 1. 10 個の文字列の配列を 1 つ作成します。 2. 10 個の数値の別の配列を作成します。 3. キーボードから 10 個の文字列を読み取り、文字列配列に入力します。 4. 文字列配列の各セルからの文字列の長さを、同じインデックスを持つ数値配列のセルに書き込みます。数値配列の内容を画面に表示します。各値は新しい行に入力する必要があります。 |
4 | 4. 逆順の数値の配列 1. 10 個の数値の配列を作成します。 2. キーボードから 10 個の数値を読み取り、配列に保存します。 3. 配列要素を逆の順序で配置します。 4. 結果を画面に表示します。各値は新しい行に入力する必要があります。 |
5 | 5. 1 つの大きな配列と 2 つの小さな配列 1. 20 個の数値の配列を作成します。 2. キーボードから 20 個の数値を読み取り、配列にそれらの数値を入力します。 3. それぞれ 10 個の数値の配列を 2 つ作成します。 4. 大きい配列の数値を 2 つの小さい配列にコピーします。数値の半分を最初の配列にコピーし、残りの半分を 2 番目の配列にコピーします。 5. 2 番目の小さな配列を画面に表示します。各値は新しい行に入力する必要があります。 |
5 Elly、ArrayList と Array
- それは私です。 - こんにちは、エリー! - 今日は新しいエキサイティングなトピックがあります! ここで、興味深い新しいクラスであるArrayListについて説明します。 - ああ、新しいクラスですか?おお!それは何をするためのものか? - 少し昔の話から始めましょう。プログラマは、配列の 1 つのプロパティが気に入らなかったのです。それは、サイズを変更できないということです。配列にさらに 3 つのエントリを保存したいが、空き領域が 1 つしかない場合はどうすればよいでしょうか? - スペース不足の問題に対する唯一の解決策は、すべての要素を含む非常に大きな配列を作成することでした。しかし、これによりメモリが非効率的に使用されることがよくありました。たとえば、配列の有効期間の 99% では配列に 3 つの要素だけを格納する必要があり、残りの 1% では 100 要素だけを格納する必要がある場合は、100 要素の配列を作成する必要があります。 - それで、プログラマーは何を思いついたのですか?- 彼らはArray と同じ働きをする クラスArrayListを書きましたが、そのサイズは変えることができました。- 興味深い動きですね。そして彼らはどうやってそれをしたのでしょうか? - すべてのArrayListオブジェクトは、内部に要素の通常の配列を格納します。ArrayListから要素を読み取るときは、内部配列から要素を読み取ります。要素を書き込むと、要素が内部配列に書き込まれます。比較してください: - では、ArrayList の利点は何でしょうか? 私の場合、コードが長くなってしまいました。 - まず、ArrayList は、プログラマが頻繁に使用する、配列では利用できないいくつかの追加機能をサポートします。例えば、穴を残さずに配列の中央に要素を挿入したり、配列の中央から要素を削除したりできます。 - 次に、ArrayList は サイズを変更できます。ArrayList が内部配列にもう 1 つの要素を格納する必要があり、空き領域がない場合、 ArrayList 内で次のことが起こります。- 2 倍の大きさの別の 1 つの配列が作成されます。
- 古い配列のすべての要素が新しい配列にコピーされます。
- 新しい配列は ArrayList オブジェクトの内部変数に格納され、古い配列はガベージとして宣言されます(その参照はもう格納されないだけです)。
6 Diego、ArrayList タスク
- また何もしないんですか?あなたはロボットですよね?ロボットは常に何かで忙しい。ここでは、最新の状態に保つためのタスクをいくつか紹介します。ただし、いくつかのヒントから始めましょう。-ヒント 1: リストは、最も一般的にはArrayListを意味します。-ヒント 2:文字列はString 型を意味します。-ヒント 3: 文字列のリストを作成するということは、最も一般的にはArrayList<String> list = new ArrayList<String>();を意味します。タスク | |
---|---|
1 | タスク 1. リスト内の 5 つの異なる文字列 1. 文字列のリストを作成します。 2. 5 つの異なる文字列をリストに追加します。 3. そのサイズを画面に表示します。 4. リストの内容を画面に表示します。各値は新しい行に入力する必要があります。ループを使用します。 |
2 | タスク 2. 5 行: «101»、«102»、«103»、«104»、«105» 1. 文字列のリストを作成します。 2. 5 つの文字列をリストに追加します。«101»、«102»、«103»、«104»、«105»。 3. 最初のもの、中間のもの、最後のものを削除します。 4. リストの内容を画面に表示します。各値は新しい行に入力する必要があります。ループを使用します。 5. そのサイズを画面に表示します。(1 つのエントリを削除すると、他のエントリのインデックスが変更されます。たとえば、最初の要素を削除すると、2 番目の要素が最初の要素になります)。 |
3 | タスク 3. 逆順の 5 行 1. 文字列のリストを作成します。 2. キーボードから 5 つの文字列を読み取り、リストに追加します。 3. 逆順に並べます。 4. リストの内容を画面に表示します。各値は新しい行に入力する必要があります。ループを使用します。 |
4 |
タスク 4. リストの先頭に 5 つの文字列を追加します。 |
5 | タスク 5. 最後の文字列を削除し、リストの先頭に追加します。 1. 文字列のリストを作成します。 2. キーボードの 5 つの文字列を読み取ります。これらの文字列をリストに追加します。 3. 最後の文字列を削除し、リストの先頭に追加します。この動作を13回繰り返します。 4. リストの内容を画面に表示します。各値は新しい行に入力する必要があります。ループを使用します。 |
7 リシャ、ジェネリック
- さて、もう一つ素晴らしい話題です。 - この日は驚きに満ちています。本当の誕生日みたいですね。 - 今日はジェネリックとは何かについて説明します。ジェネリックはパラメーターを持つ型です。Java では、コンテナ クラスを使用して、その内部オブジェクトのタイプを指定できます。 - ジェネリック変数を宣言するときは、変数の型と変数に格納されるデータの型の 1 つではなく 2 つの型を指定します。 この良い例は ArrayList です。ArrayList 型の新しいオブジェクト/変数を作成するときは、リスト内に格納する値の型を指定するのも良いでしょう。 - 刺激的ですね。 あらゆるタイプについてあなたが言ったことは特に気に入りました。 - それはちょうど良いようです。実際、一方のメソッドで文字列が ArrayList に配置され、もう一方のメソッドでその内容を操作し、数値のみが含まれることを期待すると、プログラムはクラッシュします。 - そうか。 -これまでのところ、型パラメータを使用して独自のクラスを作成するつもりはありません 。Java 作成者によって作成されたクラスの使用方法を学習します。 - 自分で書いたクラスも含めて、任意のクラスを型パラメータとして使用できますか? - はい、プリミティブなものを除く、どのタイプでも可能です。すべてのクラス パラメーターは、クラス オブジェクトから継承する必要があります。 - つまり、 ArrayList<int>は書けないのですね。 - できません。しかし、Java 開発者は、プリミティブ型の非プリミティブ型、つまりクラスから継承されたプリミティブ型を作成しました。オブジェクト。これはどのように見えるかです: - プリミティブ型とアナログ クラス (ラッパー クラス) は相互に簡単に割り当てることができます: - 大丈夫です。そうなると、ArrayList をもっと頻繁に使うことになると思います。8 Risha、ArrayListの例、ジェネリックス
- では、本当に役立つものを紹介します。ArrayList と Generics を使用するための便利な例をいくつか示します。 - 例 1. - 例 2. - 例 3. - 例 4. - 例 5. - すばらしい! それで、ディエゴはこれから私に同じような仕事をたくさん与えるつもりですよね? - そうだ!9 Diego、List<T> タスク
- ついにあなたは自由になりました。私はあなたのためにこれらのタスクを覚えておくのにうんざりしています。最新情報を得るために、さらにいくつかご紹介します。Intellij Idea で実行する追加タスク | |
---|---|
1 | 1. 3 つの配列 1. キーボードから 20 個の数値を読み取り、リストに保存し、他の 3 つのリストに並べ替えます。 リスト 1 には、3 で割り切れる数値が格納されます ( x%3==0 ) リスト 2 には、2 で割り切れる数値が格納されます ( x%2==0 ) リスト 3 には残りの数値が格納されます。 同時に 3 と 2 で割り切れる数値 (たとえば、6) は、リスト 1 とリスト 2 の両方のリストに属します。 2. printList() メソッドは、リストの各要素を新しい行に表示する必要があります。3. printList() メソッドを使用して、これら 3 つのリストを画面に表示します。最初にリスト 1 が表示され、次にリスト 2、その後にリスト 3 が表示されます。 |
2 | 2. 5 単語を逆順に キーボードから 5 単語を読み取ります。それらを文字列リストに追加し、逆の順序で画面に表示します。 |
3 | 3. 「ここ」という単語 1. 「停止」、「見る」、「聞く」という単語のリストを作成します。 2. 各単語の後に«here»を含む文字列を追加します。 3. 結果を表示します。リストの各要素は新しい行に置く必要があります。「for」ループを使用します。 |
4 | 4. 文字「r」と「l」 1. 単語/文字列のリストを作成し、そこに必要なものを入力します。 2. メソッドfix() は次のことを行う必要があります。 2.1. 文字列 2.2 のリストから文字 «r» を含むすべての単語を削除します 。文字«l»を含むすべての単語を2倍にします。 2.3. «r» と «l» の両方の文字が含まれる単語は変更しないでください。 2.4. 他の言葉では何もしないでください。 例: ローズ ヤナギ リラ オーク 出力データ: ヤナギ ヤナギ リラ オーク |
5 | 5. 単語を複製します。 1. キーボードから 10 個の単語/文字列を読み取り、文字列リストに追加します。 2. doubleValues メソッドは、パターン a,b,c → a,a,b,b,c,c に従って単語を複製する必要があります。 3. 結果を表示します。リストの各要素は新しい行に置く必要があります。「for」ループを使用します。 |
10 教授
- 素晴らしい講義を見つけました!したがって、今日は配列とリストに関する最も貴重な知識を得ることができます。Java の ArrayList に関するヒント:7月11日
- やあ、アミーゴ! あなたがこのすべてに対処できてうれしいです - あなたには報酬が与えられるに値します:12 キャプテンリス
- こんにちは、兵士さん! - おはようございます! - 素晴らしいニュースがあります。スキルを強化するための簡単なチェックを次に示します。毎日やれば、すぐにスキルが向上します。タスクは、Intellij IDEA で実行するように特別に設計されています。Intellij Idea で実行する追加タスク | |
---|---|
1 | 1. 数字を逆順に表示する キーボードから 10 個の数字を読み取って、リストに入力します。 数値を逆順に画面に表示します。ループを使用します。 |
2 | 2. 最初の M 行をリストの最後に移動します。 キーボードから 2 つの数字を読み取ります: NとM。 キーボードからN 個の文字列を読み取り、リストに入力します。 最初のM行をリストの末尾に移動します 。 リストを画面に表示します。各値は新しい行に入力する必要があります。 |
3 | 3. 配列内の最大および最小の数値 20 個の数値の配列を作成します。 キーボードから読み取った数字を入力します。 配列内の最大値と最小値を見つけます。 最大値と最小値をスペースで区切って画面に表示します。 |
4 | 4. ユーザーが文字列「end」を入力するまでキーボードから文字列を読み取ります。 文字列のリストを作成します。 キーボード文字列 (任意のもの) を読み取り、リストに追加します。 ユーザーが文字列「end」を入力するまで、キーボードから文字列を読み取ります。「終了」は省略してください。 文字列を画面に表示します。各文字列は新しい行に置く必要があります。 |
5 | 5.バン! 30 から 0 までカウントダウンし、«Bang!» を表示するプログラムを作成してください。最後に。プログラムは数値を 1 秒あたり 10 回減らす必要があります。遅延を挿入するには、次の関数を使用します。 Thread.sleep(100); // 10 分の 1 秒の遅延。 例: 30 29 … 1 0 バン! |
6 | 6. Family 次のフィールドを持つクラス Human を作成します: String name、boolean sex、int age、Human Father、Human mother。人間クラスの 9 つのオブジェクトを作成し、2 人の祖父、2 人の祖母、父親、母親、および 3 人の子供を取得するようにそれらを埋めます。オブジェクトを画面に表示します。ヒント: Human クラスに メソッドString toString()を作成すると、それはオブジェクトを表示するために使用されます。出力例:名前: Anna、性別: 女性、年齢: 21、父親: Paul、母親: Kate 名前: Kate、性別: 女性、年齢: 55 名前:イアン、性別:男、年齢:2歳、父親:マイケル、母親:アンナ … |
7 | 7. 静的修飾子を 1 つ移動します。 プログラムがコンパイルされるように、静的修飾子を 1 つ移動します。 |
ボーナスタスク | |
---|---|
1 | 1. プログラムがコンパイルされず、実行されない。修理する。 タスク:キーボードから猫のデータを読み取り、画面に表示します。 例: 猫の名前はジンクス、年齢は 6、体重は 5、尻尾 = 22 猫の名前はメイジー、年齢は 8、体重は 7、尻尾 = 20 |
2 | 2. プログラムに新しい機能を追加します。 古いタスク:プログラムは、ユーザーが Enter キーを押して空白行を入力するまで、文字列を読み取ります。次に、小文字を大文字に変換して (Mom は MOM に)、画面に表示します。 新しいタスク:プログラムは、ユーザーが Enter キーを押して空白行を入力するまで、文字列を読み取る必要があります。次に、プログラムは新しいリストを作成します。文字列の文字数が偶数の場合、文字列は複製され、奇数の場合、文字列は 3 倍になります。 入力例: Cat Cats Me 出力例: Cat Cat Cat Cats Cats Me Me |
3 | 3. アルゴリズムを学び、実践する。 キーボードから 20 個の数字を読み取り、降順に表示します。 |