教育・子育て

Java chaputer15 まとめ 後編

マんタ's icon'
  • マんタ
  • 2021/08/14 02:12

う~ん(;'∀')

蒸し暑い 

そしてこれがしばらく続くと思うとあれだ

こんな感じの

毒キノコになりそうwww

Content image

それはさておき、そろそろまとめ後半を公開しておきます。

時間があればご覧ください_(._.)_

 

newを使って配列を作る

1.要素数を指定して配列を作る

まずは、配列を作る一般的な書き方です。

ここでは int[]型を例にして示すと次のようになります。

右辺では new演算子と作成する要素数の指定に注意してください。

そしてこのような式から作成される配列のイメージは次のようになります。

配列のオブジェクトはヒーブメモリに作成され、同時に作られる参照が配列変数numberに代入されるわけです。

配列オブジェクトはいくつでも作成ができるので、変数に出して使う必要があります。

 

作成と同時に配列要素が初期化される

次にもう一つ図を見てみます。

配列の要素の並びとして扱ったものは上の図で見ると1つのオブジェクトだったということが分かります。

あと、オブジェクトの中にlengthという変数があります。

lengthは配列の要素数を表す値で、配列オブジェクトが持っている定数です。

配列作成時に要素数をカウントし、値が書き込まれます。

値は書き換えることができません。

また、配列の要素の値はどれも0です。

これはオブジェクトを作成した直後、自動的に既定の初期値で初期化されるからです。

 

配列の作り方と使い方

では、実際に作ってみますかwww

package exercise;
import java.util.Arrays;
import lib.Input;
public class Sample_sample {
public static void main(String[] args) {
 double[]data = new double[3];
 for(int i=0; i<data.length; i++) {
  data[i]=Input.getDouble("値");
   
 }
 String list = Arrays.toString(data);
 System.out.println(list);
 }
 // ここにコードを挿入

}

 

Ecripsで起動するとこのようになります

 

package exercise;
import java.util.Arrays;
import lib.Input;
public class Sample_sample {
public static void main(String[] args) {
 double[]data = new double[3];
 for(int i=0; i<data.length; i++) {
  data[i]=Input.getDouble("値");
   
 }
 String list = Arrays.toString(data);
 System.out.println(list);
 }
 // ここにコードを挿入

}

この様なコードで

結果が

dubleの配列を作ってみましたが問題なく起動します。

int[]以外の配列の作り方も同じです。

 

POINT ・・・ Arrays.toString(配列変数名)

 配列要素のリストを文字列にして返す 

Arrays.toStringは、java.utilパッケージにあるArraysクラスのstaticメソッド(クラスメソッド)です。

inputクラスと同様に使うためにはプログラムの先頭にはインポート文が必要です。

ただ・・・Ecripsの場合ほとんど自動挿入されるので入力することはほとんどないと思います・・・

 

次に無名配列について説目を

無名配列(初期化リストあり)

配列を作るもう一つのパターンとして無名配列があります。

配列の要素のリストを指定して作成する方法です。

これまで使ってきたものより一般的な書き方です。

どう違うのかというところから見ていきましょう。

int[] number =[1,2,3,4,5,6,7,8,9,]; <-----------------これまでの書き方

int[] number = new int[1,2,3,4,5,6,7,8,9,]; <------新しい書き方 (無名配列)

 

では、実際に無名配列を使ってみましょうかね。

package exercise;
import java.util.Arrays;
public class Sample_sample2 {
public static void main(String[] args) {
 int[] Box;
 Box = new int[] {1,2,3,4,5,6,7,8,9};
 System.out.println(Arrays.toString(Box));
}

} 

こんな感じです。

numberノ所をBoxに変えておきます。

 

Ecripsで起動するとこんな感じになります。

そして、無名配列では要素数を指定しません。

要素数は指定した初期化リストから自動的に設定されます。

 

オブジェクトの配列

オブジェクトをまとめて扱うときは、ArrayList(Javaパッケージ)のような便利なデータ構造を利用しますが、それでも配列の存在価値がないわけではない。

まずは、Diceオブジェクトの配列についてみていきます。

 

Diceオブジェクトの配列

作り方、使い方は一般の配列と同じです。

っといっても実際やってみないと分かりにくいと思いますねwww

一応方法としては以下の3つ

1.初期化リストで作成

 Dice[] dices = {new Dice(),new Dice(),new Dice()};

2.無名配列で作成

 Dice[] dices

  dices = new Dice[] {new Dice(),new Dice(),new Dice()};

3.配列を作った後で、配列要素にオブジェクト代入

 DIce[]dices=new Dice[3];

 

 では試しにDiceオブジェクトの配列を

Diceオブジェクトの配列

package exercise;
public class Sample_sample3 {

public static void main(String[] args) {
 Dice[] dices = {new Dice(),new Dice(),new Dice()};
 for(Dice dice : dices){
  System.out.print(dice.getVal()+"/"+ dice.getColor()+"\t");// ここにコードを挿入
 }

}

}

 

プログラムはこのようになります。

起動してみると・・・・

この様に表示されます。

今回最後に捕捉を・・・

Diceオブジェクトの配列をArrays.toStringで出力する

基本データ型の配列なら、配列要素はIntやdoubleの値。

よってArrays.toStringが適切 な値で出力が可能です。

しかし、中身がそれぞれ違うオブジェクトではそれができない(´;ω;`)

そこで、Arrays.toStringでは各オブジェクトのtoStringメソッドを呼び出してその戻り値を表示に使います。

配列要素ごとにtoStringメソッドを呼び出して表示すべき文字列を取得し、それをそのまま出力します。

なので、DIceクラスでtoStringメソッドを作成すればArrays.toStringでの出力が可能です。

 public String toString(){
   return val + "/"+color;
}

とりあえず chaputer15 終了( ^ω^)・・・

ここまでご覧いただきありがとうございました。

BYマんタ

参考書は__________________________________

新わかりやすい Java

川場 隆  Kawaba Takashi

秀和システム

 

 

Supporter profile icon
Article tip 1人がサポートしています
獲得ALIS: Article like 62.68 ALIS Article tip 1.10 ALIS
マんタ's icon'
  • マんタ
  • @25kit6
5月、そろそろ温かくなってきたかな?でも、少し肌寒いから健康管理は気を付けないとね。感染症もいろいろと流行ってるみたいだし・・・

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
教育・子育て

【科学】アリストテレスにデカルトにニュートンに…みな光に取り憑かれた~光学の発展~

Like token Tip token
22.75 ALIS
Eye catch
ビジネス

海外企業と契約するフリーランス広報になった経緯をセルフインタビューで明かす!

Like token Tip token
16.10 ALIS
Eye catch
教育・子育て

【科学(化学)】進化に必要だった猛毒のガス~酸素~

Like token Tip token
25.63 ALIS
Eye catch
クリプト

続・NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
6.37 ALIS
Eye catch
他カテゴリ

BCAAは本当に必要なのか?徹底的調査

Like token Tip token
1.20 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

Like token Tip token
114.82 ALIS
Eye catch
クリプト

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
124.82 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS