java基础第三天_数组

/*

//1.定义一个函数,函数功能是动态提取int[]中元素的最大值。

class Demo

{

public static void main(String[] arge) {

int[] array = new int[]{99,6,999,44};

System.out.println(Max(array));

}

public static int Max(int[] array){

int temp = array[0];

for (int a=1; a<array.length; a++){

if (array[a] > temp){

temp = array[a];

}

}

return temp;

}

}

*/

/*

2.定义一个函数,从数组中查询指定的元素首次出现的位置。

class Demo {

public static void main(String[] arge){

System.out.println(searchIndex(new int[]{6,8,4,6,6,9,0,8}, 8));

}

public static int searchIndex(int[] array,int number) {

int index = -1;

for(int a=0; a<array.length; ++a){

if(number == array[a]){

index = a;

break;

}

}

return index;

}

}

*/

/*3.定义函数,完成冒泡排序,大数下沉。

class Demo {

public static void main(String[] arge){

int[] array = new int[]{4,2,88,1,-1,0,4};

showArray(orderBy(array));

}

public static int[] orderBy(int[] array){

int temp = 0;

for (int a=0; a < array.length-1;++a){

for (int b=0; b < array.length-a-1; ++b) {

if (array[b] > array[b+1]) {

temp = array[b];

array[b] = array[b+1];

array[b+1] = temp;

}

}

}

return array;

}

public static void showArray(int[] array) {

for(int a=0; a<array.length; ++a){

System.out.print(array[a]+ " ");

}

}

}

*/

/*4.折半查找。

class Demo {

public static void main(String[] arge){

int[] array = {4, 6, 9, 22, 44, 89};

System.out.println(showArray(array, 44));

}

public static int showArray(int[] array, int number) {

//int length = array.length;

int min = 0;

int max = array.length;

do{

int temp = (max+min)/2 ;

if (number == array[temp]) {

return temp;

}

if (number > array[temp]) {

min = temp + 1;

continue;

}

if (number < array[temp]) {

max = temp - 1;

continue;

}

}while(true);

}

}

*/

//定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。

/*

class Demo {

public static void main(String[] arge){

int[][] array = {{1,2,3},{4,5,6},{7,8,9}};

show(array);

reverse(array);

show(array);

}

public static void reverse(int[][] array) {

int temp = 0;

for(int a=0; a<array.length-1; ++a) {

for (int b=a+1; b<array[a].length;++b) {

temp = array[a][b];

array[a][b] = array[b][a];

array[b][a] = temp;

}

}

}

public static void show(int[][] array) {

for(int a=0; a<array.length; ++a) {

for (int b=0; b<array[a].length;++b) {

System.out.print(array[a][b] + "\t");

}

System.out.println("");

}

}

}

*/

//7.遍历三维组数,横向输出三维数组的每一个层。

/*

class Demo {

public static void main(String[] arge){

int[][][] array = {{{1,2,3},{4,5,6},{7,8,9}},{{11,12,13},{14,15,16},{17,18,19}},{{31,32,33},{34,35,36},{37,38,39}}};

show(array);

}

public static void show (int[][][] array) {

for (int a=0; a<array.length; ++a) {

for (int b=0; b<array[a].length; ++b) {

for (int c=0; c < array[b].length; ++c) {

System.out.print(array[b][a][c] + "\t");

}

}

System.out.println();

}

}

}

*/

7.定义一个类:Dog 有名称 color age cry();

答:

class DogDemo {

public static void main(String[] args) {

Dog job = new Dog("Job", 2);

System.out.println("Name:" + job.getName() + " Age:" + job.getage());

job.setName("lala");

job.setAge(3);

System.out.println("Name:" + job.getName() + " Age:" + job.getage());

}

}

class Dog {

private String name;

private int age;

public void cry() {

System.out.println("wangwang~!");

}

public Dog(String name, int age) {

this.name = name;

this.age = age;

}

public void setName(String name) {

this.name = name;

}

public void setAge(int age) {

this.age = age;

}

public String getName() {

return this.name;

}

public int getage() {

return this.age;

}

}

8.阐述

答:

1) 获取数组的最大值,解决方法:遍历整个数组,通过if条件判断比较出最大值

2) 查询数组中某个值,解决方法:遍历整个数组,if条件判断,查找到这个值时,跳出循环

3) 冒泡排序:将最小/最大的数,依次沉到数组的最后完成排序.

外层循环需要进行array.length-1次,内层循环需要比较array.length-i-1次.

4) 二分查找法:要求有序数组,通过比较中间值和查找值,确定查找值所在位置(中间值的左或右),进行多次循环查找找到值的真正所在.

5) 矩阵转置问题:涉及矩阵初始化,赋值操作,转置操作注意只需对左下正三角的值进行对位交换array[i][j]=array[j][i].

6) 三位数组:抽象为魔方,分为层,每层的每行,每层的每行的每列.通过循环控制,可以横向以及纵向打印每层.具体参见代码.

7)面相对象:涉及面相对象类的定义,对象的生成,构造函数,修饰符,javabean技巧,对封装的理解.

9.阐述出来堆区,栈区,何时出现溢出,如何解决。

答:

堆区:保存对象以及成员变量栈区:保存方法以及局部变量

溢出条件:产生过多或者占用内存很大的对象函数递归调用自身可能出现栈区溢出

如何解决:1.尽可能不产生不必要的对象或成员变量1.递归操作要小心

2.设置JAVA虚拟机堆大小(java -Xms<size>) 2.采用非递归手段

10.oop

答:

面相对象:是相对面向过程而言的一种编程方式,将问题简单化.

类:是对象的抽象.

对象:是类的具体实现.

实例:就是对象.

成员变量:对象的属性变量.

成员函数:对象的方法.

public:用于修饰成员变量或者成员函数,表示公有,供其他类调用.

private:用于修饰成员变量或者成员函数,表示私有,用于封装,提高数据安全性,可通过set,get方法进行属性的改变,获取

构造函数:用于初始化对象.函数没有返回值.

this:是对象的成员变量,指向当前的对象,用于类中方法引用当前对象.

static:静态的,修饰成员变量,同类对象所共有,类也可以引用静态成员,静态方法只能访问静态成员.

时间: 2024-10-20 02:25:45

java基础第三天_数组的相关文章

IT十八掌作业_java基础第三天_数组

/* 1.定义一个函数,函数功能是动态提取int[]中元素的最大值. 2.定义一个函数,从数组中查询指定的元素首次出现的位置. 3.定义函数,完成冒泡排序,大数下沉. 4.折半查找. 5.阐述 6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的. 7.遍历三维组数,横向输出三维数组的每一个层. 8.定义一个类:Dog 有名称 color age cry(); 9.阐述出来堆区,栈区,何时出现溢出,如何解决. 10.oop ------------

java基础(16)、数组的高级应用--冒泡排序、选择排序

数组排序 目录 一. 冒泡排序 二. 选择排序 三. 优化选择排序 一. 冒泡排序 将数组元素按[从小到大排序]为例 思路:依次对临近的两个元素对比,将最大值放在数组最后:再将剩余的元素对比,大值放在剩余元素的最后. . . 以此循环,最后元素就是按从小到大排列. 1.1. 做之前,先了解这个操作:把数组的最大值放在末尾 将元素1和元素2对比,如果元素1的值大,则元素2和元素1的值互换(此时元素2为大值):再让元素2和元素3对比.  . ( 保留大值).  .  元素3和元素4对比 .  . 

复习java基础第三天(集合)

一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Collection 接口是 List.Set 和 Queue 接口的父接口, 该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合: import java.util.ArrayList; import java.util.Collection; import j

java基础(三章)

java基础(三章) 一.基本if结构 1.流程图 l  输入输出 l  判断和分支 l  流程线 1.1              简单的if条件判断 if(表达式){            //表达式为true,执行{}中的代码 } 1.2              简单的if条件判断 if(表达式){            //表达式为true,执行这里 }else{            //表达式为false,这行这里 } 说明:如果if或else后面,有且仅有一行代码,{ }可以省略

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册、登录、存取款、本行转账、跨行转账、销户、特殊操作参数、多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合)

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册.登录.存取款.本行转账.跨行转账.销户.特殊操作参数.多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合) 1) 定义bank类 属性有银行名称和存放客户的ArrayList集合, 有开户方法. 销户方法. 存钱方法. 取钱方法. 转账方法(本行转账.跨行转账) 2) 定义customer类 属性有账户名.密码.余额 3) 定义测试类创建一个银行集合用于存放bank对象创建几个bank对象:分别叫华夏银行.工商银行.招商

Java基础(三)选择结构

Java基础(三)选择结构回顾:1.什么是变量 2.变量三要素 3. ++和--  &&和|| 本章内容1.if选择结构 4种 2.switch 小知识:三元运算符: 条件?“x”:“Y” 条件为真X,条件为假Y 1.掌握if条件的结构①基础if选择结构 if(条件){ //条件成立执行的代码}123****e ②if-else 选择结构(互斥) if(条件){ //条件成立则执行}else{ //条件不成立则执行}12345③多重if选择结构 if(条件1){ }else if(条件2)

Java 基础(三)| IO流之使用 File 类的正确姿势

为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 二.File 类的使用 2.1 构造方法 File 类的构造有三种: public File(String pathname) : 直接通过文件路径字符串创建 public File(String par

Java基础语法(三)---数组

一.概念         同一种类型数据的集合.简单的来说就是一容器,用来装东西的. 使用数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 二.一维数组的格式 格式1:元素类型 [ ]数组名 = new 元素类型 [元素个数或数组长度] ; 如: int []  arr = new int [3];  也可以写成: int arr[] = new int[3]; 格式2:元素类型 []数组名 = new 元素类型 [ ]{元素1,元素2,…}; 如: int []  arr =

黑马程序员——Java基础语法(三)---数组

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本篇博文主要的内容是java语法的第三部分--数组,数组同一种类型数据的集合.其实,数组就是一个容器.数组可以自动给数组中的元素从0开始编号,方便操作这些元素. 一.数组的定义 数组的格式一:元素类型[] 数组名 = new 元素类型[元素个数或数组长度];如:int[] arr=new int[5]; 数组定义的格式二:元素类型[]数组名=new元素类型[]{元素,元素,……