java学习-day2

JAVA流程控制

一、输入Scanner    java.util.Scanner

  判断用户有没有输入 scanner.hasNext();

  可使用next() 和nextLine()方式接受键盘输入

  java学习-day2

二、顺序结构、选择结构

  顺序结构是Java的基本结构,从上到下顺序执行;

  if 单选择结构:

  if(布尔表达式){//布尔表达式为真则执行}

  if双选择结构:

  if(){} else{}

  if多选择结构:

  if(){} else if{} else if{} esle{}

 

  switch case 多选择结构 

  java学习-day2

 

   注意break和continue的区别

三、循环结构

  while:表达式为true,循环会一直执行;

  do while:即使不满足条件,也至少执行一次;

  for:for(初始化;布尔表达式;更新){};

 

  增强for循环

 

Java方法  

一、方法:一个方法只完成一个功能,方便后期扩展

  形参:定义参数

  实参:实际传递调用的参数

二、方法的重载:参数列表必须不同 ;方法名称相同;返回类型可相同可不同

三、命令行传参  :靠main()函数实现

  可变参数:不定项参数,必须在最后面 例如 int ...  x

四、递归 :一个方法调用自己本身

  边界条件要确定;

  当调用次数太多可能会造成内存问题

五、内存分析

  堆:存放new的对象和数组,可以被所有线程共享,不会存放别的对象引用

  栈:存放基本变量类型(会包含这个基本类型的数值)  引用对象的变量(会存放这个引用在堆里面的具体地址)

  方法区:可以被所有的线程共享,包含了所有的class和static对象;

六、数组的使用

  Arrays类:类中包含一系列对数据操作函数,例如下面几个函数;

  赋值:fill

  排序:sort 升序

  比较:equals  比较数组中元素是否相等

  查找:binarySearch 二分查找

 

  稀疏数组:把具有不同值的元素和行列和值记录在一个小规模数组中,从而缩小程序的规模

   java学习-day2

 

稀疏矩阵和数组转换

package com.wings;
import com.sun.codemodel.internal.JArray;

import java.util.Scanner;
public class Demo1 {
public static void main(String[] args ){
//创建数组
int[][] array1 = new int[11][11];
array1[1][2] = 1;
array1[2][3] = 2;
for (int[] ints :array1){
for (int anInt:ints){
System.out.print(anInt+"\t");
}
System.out.println();
}
//转换为稀疏矩阵
int sum = 0;
for (int i = 0; i<11; i++){
for (int j = 0;j<11;j++){
if (array1[i][j] != 0){
sum++;
}
}
}
System.out.println(sum);

int[][] array2 = new int[sum+1][3];
array2[0][0] = 11;
array2[0][1] = 11;
array2[0][2] = sum;

int count = 0;
for (int i = 0; i<11; i++){
for (int j = 0;j<11;j++){
if (array1[i][j] != 0){
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = array1[i][j];
}
}
}

for (int i = 0;i<array2.length;i++){
System.out.print(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t");
System.out.println();
}

//取出稀疏矩阵值 还原数组
int[][] array3 = new int[array2[0][0]][array2[0][1]];
for (int i = 1;i<array2.length;i++){
array3[array2[i][0]][array2[i][1]] = array2[i][2];
}
for (int[] ints :array3){
for (int anInt:ints){
System.out.print(anInt+"\t");
}
System.out.println();
}
}
}

 

上一篇:选择排序


下一篇:array_diff_key — 使用键名比较计算数组的差集