JAVA学习笔记四---排序改进和二维数组
4.1 汉语排序
前面已经介绍过Int和String的排序,现在看一下汉语的排序。
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;
/**
* 实现汉语的排序
* @see www.baidu.com
* @since Version 2.0 2020.02.17
* @author iszhangyongxin
*
*/
public class HelloWorld {
/**
* 程序的main函数
* @return void
* @param args
*/
public static void main(String args[]) {
//定义汉语数组
String[] array={"腾讯","阿里巴巴","360","百度"};
//正向排序
Arrays.sort(array,Collator.getInstance(Locale.CHINA));
//显示数组
for(String e:array){
System.out.println(e);
}
}
}
4.2 数组的扩充
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;
/**
* 实现数组的扩充
* @see www.baidu.com
* @since Version 2.0 2020.02.17
* @author iszhangyongxin
*
*/
public class HelloWorld {
/**
* 程序的main函数
* @return void
* @param args
*/
public static void main(String args[]) {
//旧的数组
int[] array={1,2,3,4,5,6,7,8,9,10};
//新的数组
int[] newArray=new int[15];
//第一种方法直接赋值
for(int i=0;i<10;i++){
newArray[i]=array[i];
}
//第二种方法是Arrays.copyOf()实现
newArray=Arrays.copyOf(array,15);
//第三种方法,使用System.arraycopy(src原数组, srcPos开始拷贝位置, dest目标数组, destPos拷贝到目标数组的位置, length需要拷贝的长度);
System.arraycopy(array, 0, newArray, 0, array.length);
//显示数组
for(int j:newArray){
System.out.println(j);
}
}
}
4.3 编程题---数组的插值和删除
插值
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 -1 6 7 8 9 10 0 0 0 0
代码
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;
/**
* 实现数组的增加
* @see www.baidu.com
* @since Version 2.0 2020.02.17
* @author iszhangyongxin
*
*/
public class HelloWorld {
/**
* 程序的main函数
* @return void
* @param args
*/
public static void main(String args[]) {
//旧的数组
int[] array={1,2,3,4,5,6,7,8,9,10};
//新的数组
int[] newArray=new int[15];
//先把整个数组copy过去
System.arraycopy(array, 0, newArray, 0, array.length);
//先移动插值后面的
for(int i=4;i<10;i++){
newArray[i+1]=array[i];
}
//增加一个新的数值
newArray[5]=-1;
//显示数组
for(int j:newArray){
System.out.print(j+"\t");
}
}
}
删除
1 2 3 4 5 -1 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 0
代码
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;
/**
* 实现数组的删除
* @see www.baidu.com
* @since Version 2.0 2020.02.17
* @author iszhangyongxin
*
*/
public class HelloWorld {
/**
* 程序的main函数
* @return void
* @param args
*/
public static void main(String args[]) {
//旧的数组
int[] array={1,2,3,4,5,-1,6,7,8,9,10};
//先移动插值后面的
for(int i=6;i<=10;i++){
array[i-1]=array[i];
}
//增加一个新的数值
array[10]=0;
//显示数组
for(int j:array){
System.out.print(j+"\t");
}
}
}
4.4 二维数组
规则的二维数组
实现一个规则的二维数组的初始化,赋值和遍历显示
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;
/**
* 实现不规则数组的初始化赋值显示
* @see www.baidu.com
* @since Version 2.0 2020.02.17
* @author iszhangyongxin
*
*/
public class HelloWorld {
/**
* 程序的main函数
* @return void
* @param args
*/
public static void main(String args[]) {
//定义一个二维数组
int[][] a=new int [10][10];
//二维数组的赋值
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
a[i][j]=i*j;
}
}
//二维数组的显示
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
System.out.print(a[i][j]+" ");
}
System.out.println("");
}
}
}
不规则的二维数组(二维数组看成是多个以为数组的集合)
实现一个不规则的二维数组的初始化,赋值和遍历显示
import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import java.util.Scanner;
/**
* 实现不规则数组的初始化赋值显示
* @see www.baidu.com
* @since Version 2.0 2020.02.17
* @author iszhangyongxin
*
*/
public class HelloWorld {
/**
* 程序的main函数
* @return void
* @param args
*/
public static void main(String args[]) {
//定义一个二维数组
int[][] a=new int [3][];
//每一个例子的赋值
int[] a1={1,2,3,4,5,6};
int[] a2={1,2,3,4,5,6,7,8};
int[] a3={1,2,3,4};
a[0]=a1;
a[1]=a2;
a[2]=a3;
//二维数组的显示
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]+" ");
}
System.out.println("");
}
}
}
第四章学习完成。