Java数组

来源:互联网 发布:linux退出命令模式 编辑:程序博客网 时间:2024/05/21 09:58

1.数组拷贝
JDK中的System类提供一个现成的方法实现此功能,定义如下:
public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length) {}
功能:将源数组src中自下标srcPos开始的连续length个元素的值依次复制并保存到目标数组dest的下标从destPos开始的连续length个元素空间中.

2.数组排序
参考数据结构中的常见的排序方法.

/**
 * 1.从命令行中读入数据
 * 2.把读入的数据保存到数组中
 * 3.对数组进行排序并输出
 */
package com.basic.array;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author Administrator
 *
 */
public class ArraySort {

 public static void main(String[] args) {
  //输入数组
  int[] array = input();  
  System.out.println("排序之前的数组:");
  //打印数组
  print(array);

  //系统提供的排序方法
  //Arrays.sort(array);
  System.out.println("/n排序之后的数组:");
  //排序
  sort(array);
  print(array);
 }

 /**
  * 打印数组
  * @param arr 数组
  */
 private static void print(int[] arr){
  for(int i : arr) {
   System.out.print(i + "/t");
  }
 }
 
 /**
  * 输入一个长度为10的数组
  * @return 数组
  */
 private static int[] input() {
  Scanner sc = new Scanner(System.in);
  int[] array = new int[10];
  int count = 0;
  while (count < 10) {
   String str = sc.next();
   if ("finish".equals(str)) {
    break;
   }
   try {
    array[count] = Integer.parseInt(str);
   } catch (Exception e) {
    System.out.println("输入错误,请重新输入:");
    continue;
   }

   count++;
  }
  return array;
 }
 
 /**
  * 排序数组
  * @param array 数组
  */
 private static void sort(int[] array) {
/*  //排序算法
  for (int i=0; i<array.length; i++) {
   for (int j=i+1; j<array.length; j++) {  
    if (array[i] > array[j]) {
     int temp = array[i];
     array[i] = array[j];
     array[j] = temp;
    }
   }
  }*/
  
  //改进的排序算法
  int k, temp;
  for (int i=0; i<array.length; i++) {
   k = i;
   for (int j=k+1; j<array.length; j++) {
    if (array[k] > array[j]) {
     k = j;
    }
   }
   if (k != i) {
    //交换数组
    temp = array[i];
    array[i] = array[k];
    array[k] = temp;
   }

  }
 }
}


3.数组查找

4.熟悉常见算法
/**
 * 500个数数到第3个数就退出,依次循环,最后剩下的那个数是多少?
 */
package com.basic.array;

/**
 * @author Administrator
 *
 * @version 2009-03-10
 */
public class Count3Quit {

 public static void main(String[] args) {
  boolean[] arr = new boolean[500];
  for(int i=0; i<arr.length; i++) {
   arr[i] = true;
  }
  
  int leftCount = arr.length;
  int index = 0;
  int countNum = 0;
  
  while (leftCount > 1) {
   if (arr[index] == true) {
    countNum++;
    if (countNum % 3 == 0) {
     countNum = 0;
     arr[index] = false;
     leftCount--;
    }
   }
   index++;
   
   if(index == arr.length) {
    index = 0;
   }
  }
  
  for (int i=0; i<arr.length; i++) {
   if (arr[i] == true) {
    System.out.println(i);
   }
  }
 }

}
http://www.javaresearch.org/article/187297.htm

原创粉丝点击