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关键字 主函数是静态的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DEVICE_ATTR设置0777引发血案

这个宏我们在内核里面使用非常频繁&#xff0c;这个宏的作用可以抛出sys设备节点给用户使用。用户可以读写sys/class下面的文件节点&#xff0c;以达到控制内核驱动的功效。比如&#xff0c;像这样的设备节点weiqifa:/sys/class/zigbee/onoff $ ls gpio_en power subsystem uev…

试用Mono Beta 1.0

下载地址: http://www.go-mono.com/download.html测试环境:Windows XP、Windows 2003测试代码:F:\HelloWorld.csusing System;namespace mynamespace { public class HelloWorld { public static void Main(string [] args) { Console.WriteLine("hello, world"…

线性链表java实现_java实现线性单链表

/**** 线性单链表*/public class LinkedLinearList {private Node head;private int length;// 实际长度/*** 初始化顺序表,长度为length*/public LinkedLinearList() {length 0;head new Node(0, null);length;}/*** 将index位置赋值为c&#xff0c;会覆盖掉原值** param in…

「任性」的C语言之父:因拒付论文装订费错失博士学位,论文52年后重见天日...

他是C语言之父、1983年图灵奖得主&#xff0c;还是Unix的关键开发者。然而&#xff0c;他却因为「任性」没有拿到博士学位&#xff0c;而且当年写的博士论文一丢就是半个世纪。如今&#xff0c;这一神秘的博士论文终于重见天日。很多人可能听说过 Dennis Ritchie 这个人。上世纪…

CS224n笔记3 高级词向量表示

本文转自&#xff1a;http://www.hankcs.com/nlp/cs224n-advanced-word-vector-representations.html 这节课从传统的基于计数的全局方法出发&#xff0c;过渡到结合两者优势的GloVe&#xff0c;并介绍了词向量的调参与评测方法。 复习&#xff1a;word2vec的主要思路 遍历整个…

C# 2.0对现有语法的改进

C# 2.0对现有语法的改进 原注&#xff1a;lover_P出处&#xff1a; [自序] 尽管Microsoft Visual Studio .NET 2005&#xff08;过去好像叫Visual Studio .NET 2004&#xff09;一再推迟其发布日期&#xff0c;但广大开发者对其的猜测以及各种媒体对其各方面的“曝光”也似乎已…

一个java类运行时从哪个方法开始_Java的应用程序是从类中的

【填空题】还不走,车来了。【填空题】进路是 运行时所经由的路径。【单选题】()是仿照法国巴黎圣母院设计建造的:【简答题】结合你学习的感受,你认为会计核算程序三大会计要素顺序可以颠倒吗?【填空题】一往无前马当先。【听力题】【判断题】企业所得税是直接税,其纳税人与负税…

C# 第一章 笔记

目录&#xff1a;硬盘 - 工具软件 - 编程开发 - Visual Studio软件&#xff1a;序列号、安装包、魔方虚拟光驱(win7) Visual Studio 2013.exeVisual Studio 2013.msiVisual Studio 2013.iso光盘 -> 光驱光盘镜像文件 -> 虚拟光驱 Win7安装会警告&#xff1a;您当前系统IE…

一粒老鼠屎

我又老生常谈了。本来很久都不去CSDN看文档的评论了。但是今天忍不住又瞄到了几眼&#xff0c;一看那些不屑的&#xff0c;骂人的腔调的评论&#xff0c;就心里堵得难受。CSDN的blog现在可想而知&#xff0c;当应很热闹。但透明和曾毅还有我都没有去用它的blog&#xff0c;我想…

我在深圳,但是家里托人在老家找了一份工作

最近&#xff0c;在微信公众号后台收到一份读者的留言&#xff0c;而且这位读者也是我们GX的&#xff0c;而且更幸运的是&#xff0c;跟我是一个地方的。她是疑惑如下~前辈你好~ 今天看到最新一篇有关读书的推文发现同是HC老乡&#xff0c;斗胆向您请教一些问题&#xff0c;有点…

Django之项目搭建和配置总结(一)

安装和创建虚拟环境 参考&#xff1a;linux系统下Python虚拟环境的安装和使用安装Django包 先进入虚拟环境&#xff0c;在联网下执行&#xff1a;pip install django1.8.7 1.8.7表示django的版本&#xff0c;如果不指定&#xff0c;会默认安装最新版的django。包会被安装到/usr…

java长连接例子_java实现长连接

();public Client(String serverIp, int port) {this.serverIpserverIp;this.portport;}public void start() throws UnknownHostException, IOException {if(running)return;socket new Socket(serverIp,port);System.out.println("本地端口&#xff1a;"socket.ge…

怎么把一个bool数组转成char?

这个是在知乎上看到的问题&#xff0c;分享给大家&#xff0c;如果有不同的答案&#xff0c;欢迎评论回复。知乎惯例谢邀人在厕所&#xff0c;刚刚蹲下因为最近都流行长文&#xff0c;但是作为日更而且更喜欢表达自己看法的我&#xff0c;力争文章是自己想发的&#xff0c;而且…

日本語勉強資源

ウェブ頁注音 http://www.hiragana.jp/ &#xff08;看新闻学背单词容易多了&#xff09;通訳 http://www.excite.co.jp &#xff08;单词&#xff0f;句子&#xff0f;网页翻译&#xff09;

mysql的高阶用法_MySQL的经典用法(十四)-高级优化

mysql的经典用法(十四)----高级优化基于/application/search/mysql/mysql-5.5.28/support-files/my-innodb-heavy-4G.cnf二次优化【删除--如果不使用主从同步】注释&#xff0c;去除无用日志文件# log-binmysql-bin# binlog_formatmixed【修改链接】# 最大链接值从100增加到512…

Kotlin——初级篇(二):变量、常量、注释

在Kotlin中的变量、常量以及注释多多少少和Java语言是有着不同之处的。不管是变量、常量的定义方式&#xff0c;还是注释的使用。下面详细的介绍Kotlin中的变量、常量、注释的使用。以及和Java的对比。 如果您还没有搭建环境和不了解Kotlin的&#xff0c;请看我的上一篇博文Kot…

java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...

一、调用存储过程方式一&#xff1a;/*** 方法功能说明&#xff1a;通过存储过程分页&#xff0c;获取分页信息以及查询记录(装在list中)&#xff1b;* List.get(0) hsTable; //存放分页信息(tableName/token/pageNo/pageSize/recordsCount/pagesCount)--hsTable.get(key)* Lis…

今天研究了一下关于Asp.net文件上传时的内存消耗问题

晕啊&#xff0c;写了半天&#xff0c;突然间所有的格式都没了&#xff0c;我不得不在写字板中重新排版&#xff0c;DuDu哥&#xff0c;你还是快捷键都去掉吧。 简单研究了一下如何解决Asp.net连续上传文件时对内存占用越来越多的问题。但目前只能解决一部份问题&#xff0c;要…

Linux系统编程-管道入门

晚上好&#xff0c;继续记录我的学习心得。当你厌倦了自己的目标时&#xff0c;怎样继续保持专注&#xff1f;误区&#xff1a;成功人士说的都是自己如何“满怀热情”去努力实现他们的目标。不管是在商业、体育还是艺术界&#xff0c;我们听到的都是“一切都归结于激情”或者“…

JavaScript 基础,登录前端验证

1、<script></script>的三种用法&#xff1a; 1.放在<body>中 2.放在<head>中 3.放在外部JS文件中 2、三种输出数据的方式&#xff1a; 1.使用 document.write() 方法将内容写到 HTML 文档中。 2.使用 window.alert() 弹出警告框。 3.使用 innerHTML 写…