Java Array数组
Java Array
import java.util.Random;
import java.util.Scanner;
public class Week6Lecture {
public static void main(String[] args) {
int size = 100;
int [] num = new int[size];
num[0] = 12;
num[num.length-1] = 89;
for (int i=0;i<=99;i++){
System.out.println(num[i]);
}
//initialize array
char [] symbol = {'$','%','+','-'};
// dynamic array based on input 动态数组的大小
int [] status;
Scanner s = new Scanner(System.in);
System.out.print("Enter number of record: ");
int record = s.nextInt();
status = new int[record];
// arrayName.length 就是长度, 用于确认最后一个值 比如 num[num.length-1]
// 里边的值定义后也可以改 比如:
symbol[2] = '*';
//display all the elements of the array 那就用for呗
//两种 普通的那种可以改数组数值 另一种只能输出用
//(1)
for (int i =0; i<symbol.length; i++){
System.out.println(symbol[i]);
}
//(2)
for (char value : symbol){
System.out.println(value);
}
Random r = new Random();
final int MAX = 100;
int newsize = 20;
int [] newnum = new int[newsize];
for (int i = 0 ; i < newnum.length; i++){
newnum[i] = r.nextInt(MAX+1);
System.out.print(newnum[i]+" ");
}
System.out.println();
// change the array size, the values inside will be removed.
// Display the number of female students from a random list of 100 students
// char M = Male, F = Female
char[] gender = {'M','F'};
char[] student = new char[size];
for (int i = 0 ; i <student.length; i++){
student[i] = gender[r.nextInt(2)];
}
int cntFemale = 0;
for (int i = 0; i<student.length; i++){
if (student[i] == 'F'){
cntFemale++;
}
}
System.out.println("The number of Female students: " + cntFemale);
// split a String
String str = "NIU ZHAO HANG";
String[] info = str.split(" ");
for (int i =0;i<info.length;i++){
System.out.print(info[i] + ",");
System.out.print(str.charAt(i));//用来输出每个字母
}
System.out.println();
// Multidimensional Array
double[][] scoreTable = new double[4][5];
int[][][] threeD = new int[1][2][3];
int[][] matrix = {{1,2},{4,5}};
char[][] symboL = {{'*','/'},{'+','-'}};
for (int i=0;i<symboL.length;i++){
for (int n=0;n<symboL[i].length;n++){
System.out.print(symboL[i][n]);
}
}
// ragged arrays 不规则数组
// Linear search
System.out.print("\nEnter number to search: ");
int key = s.nextInt();
boolean search = false;
for(int i=0;i<newnum.length;i++){
if (key==newnum[i]){
System.out.println("Found in position " + i);
search = true;
break;
}
}
if (!search){
System.out.println("Not Found");
}
// ** Bubble Sort 冒泡排序 **
// https://sm.ms/image/bDtLJVWH8wAEMmY
for (int pass=0; pass<newnum.length-1; pass++){
for (int i=0;i<newnum.length-1-pass; i++){
if (newnum[i] > newnum[i+1]){
int hold = newnum[i];
newnum[i] = newnum[i+1];
newnum[i+1] = hold;
}
}
}
for (int i =0;i<newnum.length;i++){
System.out.print(newnum[i]+" ");
}
System.out.println();
// Binary Search 只能搜排序过的数组 这个例子有问题 随后改改
int low = 0;
int high = newnum.length-1;
boolean search2 = false;
System.out.print("ENTER THE NUMBER TO SEARCH: ");
int key2 = s.nextInt();
while (low <= high){
int middle = (low + high) /2 ;
if (key2 == newnum[middle]) {
System.out.println("FOUND IN POSITION " + middle);
search2 = true;
break;
}else if (key < num[middle]){
high = middle -1;
}else{
low = middle + 1;
}
if (!search2){
System.out.println("NOT FOUND");
}
}
}
}
import java.util.Scanner;
public class Week6Lecture {
public static void main(String[] args) {
int size = 100;
int [] num = new int[size];
num[0] = 12;
num[num.length-1] = 89;
for (int i=0;i<=99;i++){
System.out.println(num[i]);
}
//initialize array
char [] symbol = {'$','%','+','-'};
// dynamic array based on input 动态数组的大小
int [] status;
Scanner s = new Scanner(System.in);
System.out.print("Enter number of record: ");
int record = s.nextInt();
status = new int[record];
// arrayName.length 就是长度, 用于确认最后一个值 比如 num[num.length-1]
// 里边的值定义后也可以改 比如:
symbol[2] = '*';
//display all the elements of the array 那就用for呗
//两种 普通的那种可以改数组数值 另一种只能输出用
//(1)
for (int i =0; i<symbol.length; i++){
System.out.println(symbol[i]);
}
//(2)
for (char value : symbol){
System.out.println(value);
}
Random r = new Random();
final int MAX = 100;
int newsize = 20;
int [] newnum = new int[newsize];
for (int i = 0 ; i < newnum.length; i++){
newnum[i] = r.nextInt(MAX+1);
System.out.print(newnum[i]+" ");
}
System.out.println();
// change the array size, the values inside will be removed.
// Display the number of female students from a random list of 100 students
// char M = Male, F = Female
char[] gender = {'M','F'};
char[] student = new char[size];
for (int i = 0 ; i <student.length; i++){
student[i] = gender[r.nextInt(2)];
}
int cntFemale = 0;
for (int i = 0; i<student.length; i++){
if (student[i] == 'F'){
cntFemale++;
}
}
System.out.println("The number of Female students: " + cntFemale);
// split a String
String str = "NIU ZHAO HANG";
String[] info = str.split(" ");
for (int i =0;i<info.length;i++){
System.out.print(info[i] + ",");
System.out.print(str.charAt(i));//用来输出每个字母
}
System.out.println();
// Multidimensional Array
double[][] scoreTable = new double[4][5];
int[][][] threeD = new int[1][2][3];
int[][] matrix = {{1,2},{4,5}};
char[][] symboL = {{'*','/'},{'+','-'}};
for (int i=0;i<symboL.length;i++){
for (int n=0;n<symboL[i].length;n++){
System.out.print(symboL[i][n]);
}
}
// ragged arrays 不规则数组
// Linear search
System.out.print("\nEnter number to search: ");
int key = s.nextInt();
boolean search = false;
for(int i=0;i<newnum.length;i++){
if (key==newnum[i]){
System.out.println("Found in position " + i);
search = true;
break;
}
}
if (!search){
System.out.println("Not Found");
}
// ** Bubble Sort 冒泡排序 **
// https://sm.ms/image/bDtLJVWH8wAEMmY
for (int pass=0; pass<newnum.length-1; pass++){
for (int i=0;i<newnum.length-1-pass; i++){
if (newnum[i] > newnum[i+1]){
int hold = newnum[i];
newnum[i] = newnum[i+1];
newnum[i+1] = hold;
}
}
}
for (int i =0;i<newnum.length;i++){
System.out.print(newnum[i]+" ");
}
System.out.println();
// Binary Search 只能搜排序过的数组 这个例子有问题 随后改改
int low = 0;
int high = newnum.length-1;
boolean search2 = false;
System.out.print("ENTER THE NUMBER TO SEARCH: ");
int key2 = s.nextInt();
while (low <= high){
int middle = (low + high) /2 ;
if (key2 == newnum[middle]) {
System.out.println("FOUND IN POSITION " + middle);
search2 = true;
break;
}else if (key < num[middle]){
high = middle -1;
}else{
low = middle + 1;
}
if (!search2){
System.out.println("NOT FOUND");
}
}
}
}