Java中的数组运用广泛,之前讲了一维数组的定义与概念,和最后的应用到代码内;那么,今天我们就进行二维数组和多维数组的运用及概念;另外,文章的最后会普及一些笔试中经常出现的算法;
一、二维数组
1、二维数组可以看成以数组为元素的数组;
2、Java中多维数组的声明和初始化应按从高维到低维的顺序进行;
3、二维数组举例:<int [] [] a = {{1,2},{3,4,5,6},{6,7,8}}>
4、二维数组的初始化:
int array [][] = {{1,2},{3,4,5,6,},{6,7,8}}
5、数组的拷贝:如果源数据数目超过目标数组边界会抛出<IndexOutOfBoundsException>
public static void arraycopy
(Ob ject src , int srcPos,Ob ject dest,int destPos,int length)
6、java.util.Arrays:
通过导包,运用JDK为我们提供的类来进行快速排序:
-打印数组---toString
-比较两个数组是否相同---equals
-数组排序(从小到大)---sort
-数组查找---binarySearch
7、二维数组简单运用代码段:
public class TwoArray{
public static void main(String[] args){
int num[][] = new int[3][];
num[0] = new int [3];
num[1] = new int [2];
num[2] = new int [4];
num[0][0] = 1;
num[0][1] = 2;
num[0][2] = 3;
num[1][0] = 10;
num[1][1] = 20;
num[2][0] = 100;
num[2][1] = 200;
num[2][2] = 300;
num[2][3] = 400;
for(int i = 0;i < num.length;i++){
System.out.println();
for(int j = 0;j < num[i].length;j++){
System.out.println(num[i][j] + "\t");
}
}
}
}
8、输出26个英文字母:
public class yingwen{
public static void main(String[] args){
char array [] = new char[26];
for(int i = 0;i < 26;i++){
array[i]= (char)('a'+i);
System.out.println(array[i]);
}
}
}
9、顺序输出数组的每个元素:
public class ArrayDemo1{
public static void main(String[] args){
int [] array = {1,2,3,4,5,6};
for(int i = 0;i < array.length;i++){
System.out.print(array[i] + "\t");
}
}
}
10、顺序输出该数组的每个元素,并输出所有元素的和,以及输出一位数判断是否在该数组内:
import java.util.Scanner;
public class ArrayDemo2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int sum = 0;
int [] array = {8,4,2,1,23,344,1};
for(int i = 0;i < array.length;i++){
System.out.print(array[i] + "\t");
sum += array[i];
}
System.out.println("该数组的元素值的和为:" + sum);
System.out.println("请输入一位整数:");
int num = sc.nextInt();
if(array[0] == num){
System.out.println("该数组包含" + num);
}else if(array[1] == num){
System.out.println("该数组包含" + num);
}else if(array[2] == num){
System.out.println("该数组包含" + num);
}else if(array[3] == num){
System.out.println("该数组包含" + num);
}else if(array[4] == num){
System.out.println("该数组包含" + num);
}else if(array[5] == num){
System.out.println("该数组包含" + num);
}else if(array[6] == num){
System.out.println("该数组包含" + num);
}else{
System.out.println("抱歉!该数不在此数组内!");
}
}
}
11、顺序输出一个二维数组的所有元素:
public class ArrayDemo3{
public static void main(String[] args){
int [][] array = {{1,2,3},{10,20},{100,200,300},{1000,2000,3000,4000}};
for(int i = 0;i < array.length;i++){
System.out.println();
for(int j = 0;j < array[i].length;j++){
System.out.println(array[i][j] + "\t");
}
}
}
}
12、使用arraycopy完成一维数组、二维数组的拷贝程序:
public class ArrayCopy{
public static void main(String[] args){
String [] str = {"one","two","three","four","five"};
String [] sBak = new String[5];
System.arraycopy(str,0,sBak,0,str.length);
for(int i = 0;i < sBak.length;i++){
System.out.print(sBak[i] + "\t");
}
System.out.println();
int [][] array ={{1,2},{10,20,30},{100,200}};
int [][] arrayBak = new int[3][];
System.arraycopy(array,0,arrayBak,0,array.length);
for(int i = 0;i < arrayBak.length;i++){
for(int j = 0;j < arrayBak[i].length;j++){
System.out.println(arrayBak[i][j] + "\t");
}
}
}
}
二、排序算法
1、分享给大家一个地址:
目录
VisuAlgo - 数据结构和算法动态可视化 (Chinese)VisuAlgo 是一个不断更新的项目,很多更复杂的高计算法还在发展研究当中。以下的算法可视化使我们下一步即将要实现的:哈希表,Jack Edmonds‘ 图形匹配算法,Hash Table (using several hashing techniques), Jack Edmonds' Graph Matching algorithm, 有向最小生成树算法, 等等。 但是,这个项目最激动人心的发展就是一个可以自动生成问题平切评分的在线测试系统。它允许学生在线对自己数据结构与算法的学习进行测验。问题是通过学生的回答和一些算法随机生成的是即刻自动打分的。 当这个在线测https://visualgo.net/zh 排序算法的话,以我目前的知识储备还不足以为大家详细讲解,还请见谅,但当我把排序算法的时候会为大家专门开一章好好来叙述排序算法!
另外希望大家都能在Java的学习与应用中能够坚持下去!
谢谢观阅!
拜拜!