java 打印三维数组_Java基础第三天_数组
1.定义一个函数,函数功能是动态提取int[]中元素的最大值。
2.定义一个函数,从数组中查询指定的元素首次出现的位置。
3.定义函数,完成冒泡排序,大数下沉。
4.折半查找。
5.阐述
6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。
7.遍历三维组数,横向输出三维数组的每一个层。
8.定义一个类:Dog 有名称 color age cry();
9.阐述出来堆区,栈区,何时出现溢出,如何解决。
10.oop
---------------------------------------------------
解答:获取数组中最大值
class ArrayMax {
public static void main(String[] args){
System.out.println(arraymax(new int[]{1,2,3,6,33,76,23}));
}
public static int arraymax(int[] arr){
if(arr ==null){
System.out.println("数组不存在");
return -1;
}
int temp =arr[0];
for(int i=0;i
if(temp
temp=arr[i];
}
}
return temp;
}
}
2.从数组中查询指定的元素首次出现的位置
class SearchArray{
public static void main(String[] args){
//System.out.println("第一次位置是第"+(searchArray(5,new int[]{1,2,4,5,7,8})+1)+"个数");
searchArray(5,new int[] {1,2,4,5,7,8});
}
public static void searchArray(int num,int[] arr){
// int a=-1;
for(int i=0;i
if(arr[i]==num){
System.out.println("这个数第一次位置是第"+(i+1)+"个数");
}
}
}
}
3.定义函数,完成冒泡排序,大数下沉。
/*
冒泡排序,大数下沉
*/
class BubbleSort{
public static void main(String[] args){
//outArray(getSort(new int[]{9,5,4,5,1,7}));
outArray(getSort(new int[]{55,8,7,9,3,1,4,11,15,6,50,45,33,30}));
}
//定义一个冒泡排序方法
public static int[] getSort(int[] arr){
//外层循环决定排序几次
for(int i=0;i
//内层循环决定大数下沉走几步
for(int j=0;j
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
//定义一个输出数组的方法
public static void outArray(int[] arr){
for(int i=0;i
System.out.print(arr[i]+" ");
}
}
}
4.折半查找。
class BinarySelect{
public static void main(String[] args){
System.out.println(getValue(new int[]{1,2,3,4,5,6,7,8},6));
}
public static int getValue(int[] arr,int x){
int a=0;
int b=arr.length-1;
int m=0;
//int minindex=0;
while(a<=b){
int minindex=(a+b)/2;
m=arr[minindex];
if(m==x){
return minindex;
}
else if(m>x){
b=minindex-1;
}
else {
a=minindex+1;
}
}
return -1;
}
}
5.阐述
答:
1) 获取数组的最大值,解决方法:遍历整个数组,通过if条件判断比较出最大值
2) 查询数组中某个值,解决方法:遍历整个数组,if条件判断,查找到这个值时,跳出循环
3) 冒泡排序:将最小/最大的数,依次沉到数组的最后完成排序.
外层循环需要进行array.length-1次,内层循环需要比较array.length-i-1次.
选择排序: 先循环选出最小(最大)值,找出下标,本轮循环完跟第一数交换,继续从第二个数开始循环,找到最小或者最大值,本轮循环完跟第二个数交换,以此类推。。
冒泡排序:第一个数跟第二个数比较大数下沉,以此类推 直到最大数下沉,然后在进行比较第二轮,第二大数下沉。。。
4) 二分查找法:要求有序数组,通过比较中间值和查找值,确定查找值所在位置(中间值的左或右),进行多次循环查找找到值的真正所在.
折半查询:找到中间位置数比较这个数跟要查询数大小,判断这个数在中间位置数的哪边,然后再取出那边中间数继续比较找出中间数,直到找出查询数(条件是两边数相等)。
5) 矩阵转置问题:涉及矩阵初始化,赋值操作,转置操作注意只需对左下正三角的值进行对位交换array[i][j]=array[j][i].行列式转置
6) 三位数组:抽象为魔方,分为层,每层的每行,每层的每行的每列.通过循环控制,可以横向以及纵向打印每层.具体参见代码.
7)面相对象:oriented object program 面向对象编程 一切皆对象
涉及面相对象类的定义,对象的生成,构造函数,修饰符,javabean技巧,对封装的理解.
6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。
//转置数组
class ArrayTransDemo{
public static void main(String[] args){
transDemo(new int[][] {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}});
}
public static void transDemo(int[][] arr){
for(int i=0;i
for(int j=i+1;j
int a=arr[i][j];
arr[i][j]=arr[j][i];
arr[j][i]=a;
}
}
//输出数组
for(int i=0;i
for(int j=0;j
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
7.遍历三维组数,横向输出三维数组的每一个层
/*
*遍历三维组数,横向输出三维数组的每一个层
*/
class MagicArray{
public static void main(String[] args){
int[][][] arry=new int[][][]{{{1,2,3},{4,5,6},{7,8,9}},{{10,11,12},{13,14,15},{16,17,18}},{{19,20,21},{22,23,24},{25,26,27}}};
magicCube1(arry);
}
//纵向输出三维数组
public static void magicCube(int[][][] arr){
for( int i=0; i
for( int j=0; j
for( int k=0; k
System.out.print(arr[i][j][k] +" ");
}
System.out.println();
}
System.out.println("------------------------------");
}
}
//横向输出三维数组方法
public static void magicCube1(int[][][] arr){
for( int i=0; i
for( int j=0; j
for( int k=0; k
System.out.print(arr[j][i][k] +" ");
}
System.out.print("\t"+"|"+"\t");
}
System.out.println();
}
}
}
8.定义一个类:Dog 有名称 color age cry();
class DogDemo{
public static void main(String[] args){
Dog d=new Dog();
d.cry();
//new Dog().cry();
System.out.println(d.getName());
d.setName("hetao");
//System.out.println(d.name);
System.out.println(d.getName());
}
}
class Dog{
private String color="black";
private int age=3;
private String name="xiaobai";
//构造方法
public void Dog(String name){
//name="n";
this.name=name;
}
public void setName(String name){
this.name=name;
//name="n";
}
public String getName(){
return this.name;
}
//属性私有化 不能用静态方法调用
public void cry(){
System.out.println(name +" "+ age+" "+"wawa");
}
}
9.阐述出来堆区,栈区,何时出现溢出,如何解决。
答:
堆区:保存对象以及成员变量
栈区:保存方法以及局部变量
溢出条件:产生过多或者占用内存很大的对象函数递归调用自身可能出现栈区溢出
如何解决:1.尽可能不产生不必要的对象或成员变量1.递归操作要小心
2.设置JAVA虚拟机堆大小(java -Xms) 2.采用非递归手段
栈空间不足:java -Xss stacksize
堆空间不足:java -Xms
举例:
堆溢出 byte[][] arr = new byte[1024 * 1024][1024 * 5];
栈溢出:
while(true){
out();
}
}
catch(Exception e){
System.out.println(count);
}
10.oop
答:
面相对象:是相对面向过程而言的一种编程方式,将问题简单化.
类:是对象的抽象.
对象:是类的具体实现.
实例:就是对象.
成员变量:对象的属性变量.
成员函数:对象的方法.
public:用于修饰成员变量或者成员函数,表示公有,供其他类调用.
private:用于修饰成员变量或者成员函数,表示私有,用于封装,提高数据安全性,可通过set,get方法进行属性的改变,获取
构造函数:用于初始化对象.函数没有返回值.
this:是对象的成员变量,指向当前的对象,用于类中方法引用当前对象.
static:静态的,修饰成员变量,同类对象所共有,类也可以引用静态成员,静态方法只能访问静态成员.
面向对象是相对面向过程而言,将功能封装进对象,强调具备了功能的对象。
类是对象的抽象,对象跟实例概念差不多
面向对象的特征:
1.封装
把属性都隐藏,提供set() get()方法
private :
用于修饰成员变量和成员函数
被私有化成员只在本类中有效
对外提供set get方法
2.继承
3.多态
类的属性也叫成员变量
类的方法也叫成员函数
成员变量:
定义在类中,随着对象的建立而建立,存在于对象所在的堆内存中,成员变量有默认初始化。
局部变量:
定义在局部范围内,存在于栈内存,作用范围结束,变量空间释放,没有默认初始化
构造函数
--------------------------
给对象进行初始化 可以有多个构造函数 重载
1.没有返回值 连void也不能有
2.函数名和类名相同
3.用构造函数创建对象 默认的构造函数时calssname
匿名对象
-----------------------------------
匿名对象是对象的简化形式
匿名对象使用情况:
1.当对对象方法仅进行一次调用的时候
2.匿名对象可以作为实际参数进行传递
Car car=new Car();
outCarColor(Car c);
匿名: outCarColor(new Car());
或者 new Car().run;
this :是关键字 对象内部指向内部的一个指针
static 静态
用于修饰 成员变量和成员函数
修饰的成员:随着类的加载而加载 优于对象存在 被所有对象所共享 可以直接被类名调用
静态方法只能访问静态成员 静态方法中不可以写this super关键字 主函数是静态的
java 打印三维数组_Java基础第三天_数组相关推荐
- java枚举类型数组_Java基础(七)泛型数组列表ArrayList与枚举类Enum
一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...
- 三 java的基本数据类型_JAVA基础(三)--JAVA基本数据类型
前两篇已经将开发环境搭建完成,如果你已经按之前的教程按部就班的完成了部署,那么世界上最优秀的编程语言之一和世界上最优秀的IDE之一已经出现在你的电脑上(此处应有掌声),如果你还没入门,或者正在台阶上踱 ...
- 数字化方法基础(三)_导入本地模型
数字化方法基础(三)_导入本地模型 Chapter 6 导入本地模型 如何创建一个列表 如何读取本地模型 全部教程链接: https://blog.csdn.net/weixin_44543463/a ...
- java实现初始化三角形数组_Java基础之数组初始化和数组JVM分析
什么是数组 所谓数组,是具有相同数据类型的若干变量或者数据按照一定排序规则组合起来的一种数据存储格式.数组中的数据称为数组元素,我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其 ...
- java input 数组_Java基础之:数组
Java基础之:数组 一组相同数据类型的数据,我们即称之为 数组,数组也是一种数据类型. 需要注意的是 , 数组和String 字符串 相同,也是引用类型的. 数组的初始化 方式一:动态初始化 四种格 ...
- java中两个doub组成一个数组_Java基础知识2-Java基本语法
数据类型 1.Java程序的基本组成 关键字:被Java语言赋予特定含义的单词,不能作标识符,如private. 标识符:由数字.字母.$和_组成的字符串,用于引用变量.且首字母不能是数字. 变量:程 ...
- java web定义数组_Java基础之数组--数组常用操作
3.2一维数组 3.2.1声明数组 数组类型[] 数组名称:int[] username; 或者 数组类型 数组名称[];int username[]; 3.2.2初始化一维数组 一维数组初始化有两种 ...
- java mp3数组_Java基础之数组(一)
数组的定义 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照 一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们.数组的三个基本特 ...
- java arraylist枚举器遍历_Java基础(七)泛型数组列表ArrayList与枚举类Enum
一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...
最新文章
- 为什么2G/3G和AI擦不出火花?他们用这篇论文告诉你答案
- 简单借还书管理系统c语言,急求程序!!!简单图书馆借/还书管理子系统
- 自编码器深度分析+定制特征描述子构建初探
- HTMLCSS————块元素与内联元素
- 《2001太空漫游》50周年:一部电影和一整个时代
- Kalman Filter—Step by step Derivation of Kalman Gain
- Vue 2.0 + Axios + Vue Router 实现CNode社区
- 《华为研发》读书笔记与读后感范文3300字
- python知识点大全-2
- 解决tensorflow2.x中使用tf.contrib.slim包时出现的No module named:tensorflow.contrib 问题
- 使用Java程序接口备份数据库的思路与实现
- word分栏 公式居中对齐 自动编号
- 十二、阿里云 maven 配置
- pgsql——查询常用
- 学习型组织将何去何从?
- 桥牌坐庄训练bm2000 level3闯关记录——A1
- 基于MATLAB的LPF低通滤波器设计(巴特沃斯)
- 寒假作业:COCI 2014/2015题选 题目与题解
- 华为 MateBook E GO 标准版评测
- 知乎热议:告别“大小周”、程序员“内卷”时代终结?程序员最想学习的语言原来是这?
热门文章
- 【最新版】Java速成路线(急于找工作!)
- java int字母,从Java中获取int,也包含字母
- 使用rpm包安装mysql_centos下利用rpm包安装mysql
- 安装MySql卡在Start Service的问题
- java怎样写入五个人的成绩_用java输入5个学员姓名和分数,显示分数最高的学员姓名和分数?...
- 数组中的forEach和map的区别
- SQLAlchemy Script
- Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)
- 抽象类(Abstract)和接口的不同点、共同点(Interface)。
- jquery中json数据转换为字典