java 数组

1.一维数组:1)先声明: int arr[];  String str[];  然后给数组分配内存:arr =new int[5]; --要指定数组元素的类型和数组元素的个数 ,初始时候每个元素的初始值都是0

2)声明的时候同时为数组分配内存: int month[] = new int[12]; --指定数组长度为12

2.初始化一维数组:int arr[]=new int[]{1,2,3,4,5} ;   int arr2[]={34,23,12,6}; --两种初始方式都可以

3.使用一维数组:用下标,例如i=2;arr[2]

4.二维数组:int arr[][];  --分配内存的方法-1)a =new in[2][4] ;(a[0],a[1]长度一样都是4)

2)分别为每一维分配内存a=new int [2][];   a[0]=new int[2]; a[1]=new int[4];(a[0]长度是2,a[4]长度是4,注意这种可以不一样)

二维数组初始化:int arr[][] ={{12,0},{45,0}}

5。使用二维数组:与矩阵相连着: int a[][]=new int[3][4];

for (int i=0;i<a.length;i++){

  for(int j=0;j<a[i].length;j++){

          Systrm.out.print(a[i][j]);}}

6.数组的基本操作1).遍历数组:见上面的例子  ,还有一种方法见书p108

2).填充替换数组元素:int arr[] =new int[]{45,12,2,10}; Arrays.fill(arr,1,2,8); 就是从1到2,不包括替换成8,然后输出为45,8,2,10

3.)对数组进行排序:Arrays.sort(arr)  --默认对数组进行升序排序,可以重载,默认int?没有返回值

4).复制数组:Arrays.copyOf(arr,5)  ---5为新的一个数组的长度,arr为要复制的数组 ,copyOfRange(arr,0,3)---复制数组

5).数组查询:Arrays.binarySearch(arr,0,1,8); --二分查找,从0到1查找8,但是不包括1.

Arrays.binarySearch(arr,4)--查找4

二分查找使用前要进行排序。即Arrays.sort(ai);

7.数组排序算法:1)冒泡排序:小数往前放,大数往后放,类似于水中气泡往上升,就是对比相邻的元素值。 双循环

public void sort(int[] array){
  for (int i = 1;i < array.length;i++){
  for(int j = 0;j< array.length-1;j++){
  if(array[j] > array[j+1]){
  int temp =array[j];
  array[j]=array[j+1];
  array[j+1]=temp;
       }
  }
  } --------冒泡排序算法部分 

2)直接选择排序:

 public void sort(int[] array){ 
   for (int i = 1;i < array.length;i++){
  int index = 0;
   for(int j = 1;j< array.length-i;j++){
   if(array[j] > array[index]){
  index=j;
     }
   }
   int temp =array[array.length-i];
   array[array.length -i]=array[index];
   array[index]=temp;
   }

3)反转排序:就是逆序排序:代码如下

 public void sort(int[] array){ 
  int len = array.length;
  int temp;
  for (int i=0;i<len/2;i++){
  temp=array[i];
  array[i]=array[len-1-i];
  array[len-1-i]=temp;
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值