java学习(第四篇)数组

一、一维数组

1.声明,分配内存

int[] a=new int[10]; 

数组元素的数据类型 【】 数组名=new 类型 【数组元素个数】;

2.初始化

int[] a=new int[] {1,2,3,4};
int b[]= {5,6,7,8};

3.使用

for(int x:a )
{
System.out.println(x);
}

for(int i=0;i<4;i++)
{
System.out.println((i+1)+":"+a[i]);
}

二、二维数组

1.声明,内存分配

int[][]a=new int[2][] ;
int b[][];
b=new int [2][4];
int c[][];
c=new int[2][];
c[0]=new int[2];
c[1]=new int[3];

2.初始化

int b[][]= {{1,2,3},{4,5,6}};

3.遍历

package com.test01;

public class ArrayTest01 {

public static void main(String[] args) {
// TODO Auto-generated method stub
int b[][]= {{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++) //length取一维数组的长度
{
for(int c=0;c<b[k].length;c++) //length取一维数组中的元素个数
{
System.out.print(b[k][c]); //按元素输出
System.out.print(" ");
}
System.out.println();//输出换行
}
}

}

4.填充替换数组元素

fill()方法

5.排序

package com.test01;

import java.util.Arrays;

public class ArrayTest02 {

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[] {33,66,11,22};
Arrays.sort(a);
for(int c:a)
{
System.out.println(c); //按元素输出

}
}

}

6.复制数组

int[] a=new int[] {33,66,11,22};
int b[]=Arrays.copyOf(a, 2);
for(int c=0;c<b.length;c++) //length取一维数组中的元素个数
{
System.out.println(b[c]); //按元素输出
}

int[] a=new int[] {33,66,11,22};
int b[]=Arrays.copyOfRange(a, 2, 5);
for(int c=0;c<b.length;c++) //length取一维数组中的元素个数
{
System.out.println(b[c]); //按元素输出
}
}

7.查询

int index= Arrays.binarySearch(a,0,1,8);

在数组下标为0到1(不包括1)的范围内,查找“8”,找到返回索引,找不到返回-1;

三、常见算法

1.冒泡排序法

package com.test01;

public class PaomoSort {

public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]= {63,4,24,1,3,15};
PaomoSort s=new PaomoSort();
s.sort(a);
}
public void sort(int array[]) {
int t=0; //完成交换功能时的中间值
for(int i=0;i<array.length-1;i++) //i控制外层循环,只用来判断整个大循环要几次
{
for(int j=0;j<5-i;j++) //j控制内层循环,每次一次大循环里面的小循环怎样进行的
{
if(array[j]>array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
showArray(array);
}
public void showArray(int[] array) {
// TODO Auto-generated method stub
for(int x:array)
{
System.out.print(x+" ");
}
}

}

2.直接选择排序法

public class XuanzeSort {

public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]= {63,4,24,1,3,15};
XuanzeSort s=new XuanzeSort();
s.sort(a);
}

public void sort(int[] array) {
// TODO Auto-generated method stub
int max;
for(int i=1;i<array.length;i++)
{
max=0; //把第一个元素作为最大值
for(int j=1;j<=6-i;j++)
{
if(array[j]>array[max])
{
max=j;
}

}
int t=array[array.length-i];
array[array.length-i]=array[max];
array[max]=t;
}
showArray(array);
}

public void showArray(int[] array) {
// TODO Auto-generated method stub
for(int x:array)
{
System.out.print(x+" ");
}
}

}

原文地址:https://www.cnblogs.com/wsxcode/p/11372703.html