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
Java数组
最新推荐文章于 2025-04-04 19:00:02 发布