配列定義:
いわゆるアレイ、プログラミングにおいて、処理、データフォーマットの順序付けられた形で編成同じタイプの変数の数を容易にするためです。データの同じ種類の特定の順序で配置されているこれらのセットは、アレイと呼ばれます。データ配列と呼ばれる配列要素の各々は、配列要素が0から始まるインデックスの場所を示すために、そのインデックスを格納するために、ステップは1である。
実施例1:配列要素タイプ[]配列名; INT [ ]のAGE、それはデータ型、int型の配列型として] [INTを推奨することができる。
実施例2:型配列名[]配列要素を、INT年代[];
2つの配列の初期化:
1。静的初期化:
構文:
配列要素タイプ[] =新しい配列の配列要素のタイプ名[] {素子1、素子2、素子3、...};
例えば:
INT [] NUMS =新しいINT [] {1,3,5、 7,9};
単純な表現、初期化されると、次に、最初の文を宣言しなければならない可能性がない初期化:
INT [] = {1,3,5,7,9} NUMS;
2.動的初期化:
私たちによって配列の要素を設定します番号(配列の長さ)、および各配列要素の初期値はシステムによって決定される。
構文:
配列要素タイプ[] =新しい配列配列要素タイプ名[長さ];
例:
INT []は、新しいint型の年齢= [100]。
注:静的および動的な初期化初期化が同時に[] NUMS =新しいINTをint型は使用できない[5 ] {1,3,5,7,9}; エラー書き込み
三方質問(書き込まれます)。
手書きの配列の最大を探す1
//手写找出做大值
static int getMax(int[] arr){
if(arr!=null && arr.length>0){
int max=arr[0];
for (int i =0;i<arr.length;i++){
if(max<arr[i]){
max=arr[i];
}
}
return max;
}
return -1;
}
2.バブルソート
このソート方法が最も簡単であり、基本的な考え方:
各要素について順次開始から終了までは、2つの隣接する要素の大小関係を比較順不同、次にスイッチ位置は、ソート後の最初の比較の後、場合よりも大きいです最大描画することができ、その後、残りの要素に同一の方法を使用して一つずつ比較することができます。
N個の要素を見ることができる場合には、M NMの比較であるとN-1コンパレータホイール、第1の車輪の合計を行います。(要素6は、6-1回の比較、比較第一ラウンドで6-1回、第三ラウンド比較6-3倍にした場合)。
//冒泡排序法
static void sort(int[] arr){
int temp = 0;
for (int i =0;i<arr.length-1;i++){
for(int j = 0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
3.ソート選択
基本的な考え方:要素のインデックス位置、後部要素を選択し、より多くの切換位置よりも、最小のソート後の比較の最初のラウンドは、同じ方法を使用して、描かれ、その後、残りすることができれば、順次、比較を要素は、リンゴにリンゴを比較することができます。
これは、選択ソート、最小値は、最後まで、第二ラウンドは、第2の小値を選択し、最初のラウンドで選択されますを見ることができます。
[0]の最初のラウンドおよび要素は、第二ラウンドARR [1]から、比較ARRから戻って、次の要素を比較など。N-1ラウンドの数Nを行います。いくつかのバブルソートの高効率に関して、ソート回のみのラウンド為替あたり]を選択します。
//选择排序
static void selectSort(int[] arr) {
int temp = 0;
if (arr != null && arr.length > 0) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
}
4.バイナリ検索インデックス要素(配列要素は、連続でなければなりません。)
//二分法查找
static int binarySearch(int[] arr, int key) {
int low = 0;
int high = arr.length - 1;
if (arr != null && arr.length > 0) {
while (low <= high) {
int mid = (low + high) >> 1;
int midVal = arr[mid];
if (midVal < key) {
low = mid + 1;
} else if (midVal > key) {
high = mid - 1;
} else {
return mid;
}
}
}
return -1;
}
4.どのように配列の長さを長くする:
A:配列内のJavaは固定長で、動的に長さを増加させません。あなただけの配列を再定義することによって、アレイを拡張したい場合は、新しい配列に古い配列の内容をコピーします。
copyOf
public static int[] copyOf(int[] original,
int newLength)复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将包含 0。当且仅当指定长度大于原数组的长度时,这些索引存在。
参数:
original - 要复制的数组
newLength - 要返回的副本的长度
返回:
原数组的副本,截取或用 0 填充以获得指定的长度
int[] arr = {2, 1, 4, 3, 6, 5};
int[] arr1= Arrays.copyOf(arr,10);
System.out.println(Arrays.toString(arr1));
5.Arraysツール
の一般的な方法
asList(T... a)
返回一个受指定数组支持的固定大小的列表。
binarySearch(int[] a, int key)
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值
copyOf(int[] original, int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
copyOfRange(int[] original, int from, int to)
将指定数组的指定范围复制到一个新数组。
equals(int[] a, int[] a2)
如果两个指定的 int 型数组彼此相等,则返回 true。
fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组的每个元素。
fill(int[] a, int fromIndex, int toIndex, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。
hashCode(int[] a)
基于指定数组的内容返回哈希码
sort(int[] a)
对指定的 int 型数组按数字升序进行排序。
sort(int[] a, int fromIndex, int toIndex)
对指定 int 型数组的指定范围按数字升序进行排序。
toString(int[] a)
返回指定数组内容的字符串表示形式。