Javaアレイの定義と使用<br />同じタイプのデータセットを保存する場合は、配列を使用できます。
配列の定義とメモリの割り当て
Javaに配列を定義するための2つの構文があります。
type arrayname [];
タイプは、基本的なタイプとコンビネーションタイプを含む任意のデータタイプです。例えば:
int demoarray []; int [] demoarray;
これらの2つのフォームに違いはなく、使用効果はプログラミング習慣に応じてまったく同じです。
CやC ++とは異なり、Javaは配列を定義するときに配列要素のメモリを割り当てないため、配列要素の数、つまり配列の長さを指定する必要はありません。さらに、上記のアレイの場合、その要素にアクセスすることはできません。
arrayName = new Type [arraysize];
アレイジーは、配列の長さとタイプが配列のタイプです。のように:
demoarray = new int [3];
3つの整数で占有されているメモリスペースを整数配列に割り当てます。
通常、定義中にスペースを割り当てることができます。構文は次のようになります。
type arrayName [] = new Type [arraysize];
例えば:
int demoarray [] = new int [3];
配列の初期化
アレイを宣言しながら初期化(静的初期化)または宣言後に初期化することができます(動的初期化)。例えば:
//静的初期化//静的初期化中、それはspaceを配列要素に割り当て、値をintarrayに割り当てます[] = {1,2,3,4}; string stringArray [] = {"wechatyuan"、 "http:// www .weixueyuan.net "、"すべてのプログラミング言語は紙のタイガー "}; FloatArray [2] = 100F;配列リファレンス
アレイはsubscriptで参照できます。
arrayname [index];
CやC ++とは異なり、Javaはセキュリティを確保するために、配列要素の範囲外チェックを実施する必要があります。
各配列には、その長さを示す長さの属性があります。たとえば、intarray.lengthは、配列intarrayの長さを指定します。
[例] 5つの整数の入力を必要とするコードを作成し、合計を出力します。
Java.util。*; public static void main(String [] args [] = new int [5]; Array Elements aut.out.print( " + len +" integers、 "); ){intarray [i] = sc.nextint(); (「すべての配列要素の合計は次のとおりです。実行結果:
スペースで区切られた5つの整数を入力してください:10 20 15 25 50
すべての配列要素の合計は次のとおりです。120
アレイトラバーサル
実際の開発では、アレイ内のすべての要素を取得するために配列を通過することがしばしば必要です。考える最も簡単な方法は、ループのためのものです。たとえば、
int arraydemo [] = {1、2、4、7、9、192、100}; ] + "、");}
出力結果:
1、2、4、7、9、192、100、
ただし、Javaはループ用の「拡張バージョン」を提供します。これは、配列を通過するために特別に使用され、構文は次のように使用されます。
for(arrayType varname:arrayName){//いくつかのコード}
ArrayTypeは、配列要素のタイプでもあります。
各ループが実行され、配列内の次の要素の値が取得され、配列の最後までVarname変数に保存されます。つまり、最初のループでのVarnameの値は0番目の要素であり、2番目のループは1番目の要素です...たとえば:
int arraydemo [] = {1、2、4、7、9、192、100};
出力の結果は上記と同じです。
For Loopのこの拡張バージョンは、「Foreach Loop」とも呼ばれます。これは、通常のループステートメントの特別な単純化されたバージョンです。すべてのforeachループは、ループのために書き換えることができます。
ただし、配列のインデックスを使用する場合、拡張されたループはそれを行うことができません。
二次元配列
2次元配列の宣言、初期化、および参照は、1次元配列に似ています。
int intarray [] [] = {{1,2}、{2,3}、{4,5}}; int a [] [] = new int [2] [3]; a [0] [0] = 12; a [0] [1] = 34; // ...... a [1] [2] = 93; Java言語では、2次元配列は配列の配列と見なされるため、配列空間は連続的に割り当てられていないため、2次元配列の各寸法のサイズは同じである必要はありません。例えば:
int intarray [] [] = {{1,2}、{2,3}、{3,4,5}}; int a [] [] = new int [2] []; a [0] = new int [3]; a [1] = new int [5]; [例] 2次元配列を介して2つのマトリックスの積を計算します。
public class demo {public static void main(string [] args){//最初のマトリックス(2次元配列の動的初期化)in [] [] = new int [2] [3]; Matrix(2D配列を静的に初期化)int b [] [] = {{1,5,2,8}、{5,9,10、-3}、{2,7、-5、-18}}; // result matrix int c [] [] = new int [2] [4]; j ++)a [i] [j] =(i+1) *(j+2); <4; j ++){c [i] = 0; [j]; //(int i = 0; i <2; i ++){for(int j <4; j ++)system.out.printf( "%-5d" c [i] [j]); out.println()}}実行結果:
25 65 14 -65 50 130 28 -130
いくつかの説明:
上記は静的配列です。静的配列が宣言されると、その容量は固定されており、変更できません。したがって、アレイを宣言する場合、不十分な容量を防ぐためにアレイの最大容量を考慮する必要があります。
プログラムの実行時に容量を変更する場合は、配列リスト(ArrayList、動的配列とも呼ばれる)またはベクトル(ベクトル)を使用する必要があります。
実際の開発では頻繁に使用されず、実際の開発では要素をアレイに追加または削除する必要があり、その容量は容量があるため、実際の開発で頻繁に使用されず、アレイリストまたはベクトルに置き換えられる静的配列の固定容量の欠点があるためです。見積もるのは簡単ではありません。
Java文字列(文字列)
表面上、文字列は「weixueyuan」、「http://www.weixueyuan.net」などの二重引用符の間のデータです。 Javaでは、次の方法を使用して文字列を定義できます。
string stringname = "string content";
例えば:
string url = "http://www.weixueyuan.net"; string webname = "wechatyuan";
文字列は、「+」と文字列を実行することで連結することができます。
Public Class Demo {String [] args){stuname = "xiao ming";グレードは「 + stuscore; system.out.println(info);}}です。実行結果:
Xiao Mingの年齢は17歳で、彼の成績は92.5です
文字列の文字列には、配列と共通するものが1つあります。つまり、初期化された後、その長さは変更されず、コンテンツは変更されません。以下に示すように、その値を変更したい場合は、新しい文字列が生成されます。
string str = "hello"; str += "world!";
この割り当て式は、STRの直後に「World!」を追加して、シンプルなソリティアのように見えます。動作原則は次のとおりです。プログラムは最初にSTR1文字列を生成し、メモリ内のスペースに適用されます。文字列の長さが初期化された後に固定されているため、現時点で新しい文字列を追加することは不可能です。変更したい場合は、元のスペースを放棄し、「Hello World!」に対応できるメモリスペースを再適用できます。
実際、Stringはjava.langパッケージの下のクラスです。その形式は次のとおりです。
string stringname = new String( "string content");
例えば:
string url = new String(http://www.weixueyuan.net);
ただし、文字列は特に一般的に使用されるため、Javaは簡素化された構文を提供します。
単純化された構文を使用するもう1つの理由は、標準のオブジェクト指向の構文によれば、メモリ使用量に比較的大きな廃棄物があることです。たとえば、string str = new String( "ABC");実際には2つの文字列オブジェクトが作成されます。1つは「ABC」オブジェクトで、一定のスペースに保存され、もう1つは新しいキーワードを使用してオブジェクトSTRに適用されます。
文字列操作
文字列を簡単に操作する方法はたくさんあります。
1)長さ()メソッド
長さ()は、文字列の長さを返します。たとえば、:
string str1 = "weixueyuan"; string str2 = "weixueyuan"; system.out.println( "str1の長さは" + str1.length()); system.out.println( "st r2の長さは" + " + str2.length());
出力結果:
str1の長さは3ですstr2の長さは10です
文字、数字、または漢字であろうと、各文字の長さは1であることがわかります。
2)charat()メソッド
charat()メソッドの関数は、インデックス値に従って文字列内の指定された文字を取得することです。 Javaは、文字列内の最初の文字のインデックス値は0、2番目の文字のインデックス値は1などであると規定しています。例えば:
string str = "123456789"; system.out.println(str.charat(0) + "" + str.charat(5) + "" + str.Charat(8));
出力結果:
1 6 9
3)()メソッドを含む
contains()メソッドは、文字列にサブストリングが含まれているかどうかを検出するために使用されます。たとえば、:
string str = "weixueyuan"; system.out.println(str.contains( "yuan"));
出力結果:
真実
4)()メソッドを交換します
たとえば、指定されたすべてのサブストリングを文字列に置き換えるために使用される文字列置換。
string str1 = "weixueyuanのurlはwww.weixueyuan.net!"; string str2 = str1.replace( "weixueyuan"、 "weixueyuan"); system.out.println(str1); syste m.out.println(str2 );
出力結果:
weixueyuanのURLはwww.weixueyuan.netです!weixueyuanのURLはwww.weixueyuan.netです!
注:置換()メソッドは、元の文字列を変更しませんが、新しい文字列を生成します。
5)分割()メソッド
指定された文字列をデリミッターとして使用して、現在の文字列を分割します。
import java.util。*; public class demo {public static void main(string [] args){wei_xue_yuan_is_is_is_good "; arrays .tostring(strarr));
実行結果:
[wei、xue、yuan、is、good]
上記は、いくつかの一般的に使用されている文字列オブジェクトのみをリストします。詳細な説明については、APIドキュメントを参照してください。