1、java能动态分配数组吗?

答:可以。int i = 12;int[] myInt = new int[i];

2、我怎么知道数组的长度?

答:'.length'属性获取

3、数组有没有length()这个方法? String有没有length()这个方法

答:数组没有length()这个方法,有length的属性。String有length()这个方法

4、Java中的任何数据类型都可以使用System.out.pritln方法显示

对基本数据类型而言,输出的往往是变量的值;对于像数组这一类复杂的数据类型,输出的是其堆空间中存储位置的hashCode值

5、操作二维数组的注意点

操作二维数组不应使用常数来控制维数。具体方法是array.length表示行数,array[row].length来表示row行的列数。这样当数组行数和列数不相等时,代码可以自动调整为正确的值。

6、显示输出:

String[] stringArray = new String[3]; // 各元素的值默认为null
for (int i = 0; i < stringArray.length; i++) { // 对各元素进行初始化,但没有赋值。stringArray[i] = new String();System.out.println(stringArray[i]);
}
答案:空  (有别于null)

7、面试题目:创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同

class ArrayExer {public static void main(String[] args) {//方式一://     int[] arr = new int[6];//      for (int i = 0; i < arr.length; i++) {// [0,1) [0,30) [1,31)//            arr[i] = (int) (Math.random() * 30) + 1;////          boolean flag = false;//            while (true) {//                for (int j = 0; j < i; j++) {//                   if (arr[i] == arr[j]) {//                     flag = true;//                     break;//                    }//             }//             if (flag) {//                   arr[i] = (int) (Math.random() * 30) + 1;//                    flag = false;//                    continue;//             }//             break;//            }//     }////       for (int i = 0; i < arr.length; i++) {//          System.out.println(arr[i]);//       }//方式二:int[] arr = new int[6];for (int i = 0; i < arr.length; i++) {// [0,1) [0,30) [1,31)arr[i] = (int) (Math.random() * 30) + 1;for (int j = 0; j < i; j++) {if (arr[i] == arr[j]) {i--;break;}}}for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}}

8、回形数格式方阵的实现

从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出:

 1 2 4 3

输入数字3,则程序输出:

 1 2 3 8 9 4 7 6 5

输入数字4, 则程序输出:

 1   2   3   4 12  13  14  5 11  16  15  6 10   9  8   7

方式一:

class RectangleTest {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入一个数字");int len = scanner.nextInt();int[][] arr = new int[len][len];int s = len * len;/** k = 1:向右 k = 2:向下 k = 3:向左 k = 4:向上*/int k = 1;int i = 0, j = 0;for (int m = 1; m <= s; m++) {if (k == 1) {if (j < len && arr[i][j] == 0) {arr[i][j++] = m;} else {k = 2;i++;j--;m--;}} else if (k == 2) {if (i < len && arr[i][j] == 0) {arr[i++][j] = m;} else {k = 3;i--;j--;m--;}} else if (k == 3) {if (j >= 0 && arr[i][j] == 0) {arr[i][j--] = m;} else {k = 4;i--;j++;m--;}} else if (k == 4) {if (i >= 0 && arr[i][j] == 0) {arr[i--][j] = m;} else {k = 1;i++;j++;m--;}}}// 遍历for (int m = 0; m < arr.length; m++) {for (int n = 0; n < arr[m].length; n++) {System.out.print(arr[m][n] + "\t");}System.out.println();}}
}

方式二:

class RectangleTest1 {public static void main(String[] args) {int n = 7;int[][] arr = new int[n][n];int count = 0; // 要显示的数据int maxX = n - 1; // x轴的最大下标int maxY = n - 1; // Y轴的最大下标int minX = 0; // x轴的最小下标int minY = 0; // Y轴的最小下标while (minX <= maxX) {for (int x = minX; x <= maxX; x++) {arr[minY][x] = ++count;}minY++;for (int y = minY; y <= maxY; y++) {arr[y][maxX] = ++count;}maxX--;for (int x = maxX; x >= minX; x--) {arr[maxY][x] = ++count;}maxY--;for (int y = maxY; y >= minY; y--) {arr[y][minX] = ++count;}minX++;}for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length; j++) {String space = (arr[i][j] + "").length() == 1 ? "0" : "";System.out.print(space + arr[i][j] + " ");}System.out.println();}}
}

9、下面数组定义正确的有:

A.String strs[] = { ‘a’ ‘b’ ‘c’};
B.String[] strs = {“a”, “b”, “c”};
C.String[] strs = new String{“a” ”b” ”c”};
D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};

答案:
B_D

10、写出结果

class Demo{public static void main(String[] args){String foo="blue"; boolean[] bar=new boolean[2]; if(bar[0]){   foo="green";} System.out.println(foo);}
}

[输出]:blue

11、练习Arrays工具类的使用:

1、从键盘输入本组学员的成绩,放到数组中
2、用for循环显示所有学员的成绩
3、排序:从低到高
4、查找是否有正好60分的,如果有返回位置
5、复制成绩最低三名构成新数组
6、用工具类打印成绩最低三名成绩

/*
练习:
1、从键盘输入本组学员的成绩,放到数组中
2、用foreach显示所有学员的成绩
3、排序:从低到高
4、查找是否有正好60分的,如果有返回位置
5、复制成绩最低三名构成新数组
6、用工具类打印成绩最低三名成绩
*/
import java.util.Scanner;
import java.util.Arrays;class TestArraysExer{public static void main(String[] args){//1、声明一个数组并创建一个数组int[] scores = new int[5];//2、从键盘输入成绩Scanner input = new Scanner(System.in);for(int i=0; i<scores.length; i++){//成绩存在数组的元素中//为元素赋值System.out.print("请输入第" + (i+1) + "个学员的成绩:");scores[i] = input.nextInt();}//3、显示成绩//用foreach显示所有学员的成绩System.out.println("本组学员的成绩如下:");for(int s = 0; s < scores.length;s++){System.out.println(scores[s]);}//4、排序:从低到高Arrays.sort(scores);System.out.println("排序后的结果:" + Arrays.toString(scores));//5、查找60分int index = Arrays.binarySearch(scores, 60);if(index<0){System.out.println("没有正好60分的");}else{System.out.println("60分的索引位置:" + index);}//6、复制成绩最低三名构成新数组//int[] newArray = Arrays.copyOfRange(scores, 0, 3);int[] newArray = Arrays.copyOf(scores,  3);//7、用工具类打印成绩最低三名成绩System.out.println("成绩最低的三名同学是:" +  Arrays.toString(newArray));}
}

12、一维数组a[],用java代码将数组元素顺序颠倒

public static void main(String[] args) {int[] a = new int[] { (int) (Math.random() * 1000),(int) (Math.random() * 1000), (int) (Math.random() * 1000),(int) (Math.random() * 1000), (int) (Math.random() * 1000) };System.out.println(a);System.out.println(Arrays.toString(a));swap(a);System.out.println(Arrays.toString(a));}public static void swap(int a[]) {int len = a.length;for (int i = 0; i < len / 2; i++) {int tmp = a[i];a[i] = a[len - 1 - i];a[len - 1 - i] = tmp;}
}

Java基础之数组练习相关推荐

  1. Java 基础 利用数组来实现银行注册开户、存钱、取钱

    Java 基础 利用数组来实现银行注册开户.存钱.取钱 1.主界面 放置于BankSystem类中 思路: (1)用输入语句完成主界面的编写 (2)用Scanner实现键盘录入数据 (3)用switc ...

  2. Java基础-遍历数组

    Java基础-遍历数组 1.语法简介 2.一维数组 3.二维数组 4.三维数组 1.语法简介 在Java中,对for语句的功能给予了扩充.加强,以便更好的遍历数组. 语法格式如下: for(声明循环变 ...

  3. Java基础之数组与集合

    Java基础之数组与集合 一.数组 二.冒泡排序算法 三.选择排序算法 四.二维数组 五.Arrays 工具 六.宠物管理系统 七.集合 Collection 八.List 九.重写 equals 方 ...

  4. 一文带你深入理解【Java基础】· 数组

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  5. java基础(十) 数组类型

    ###1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) {Class ...

  6. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a正在的初始化为一个数组 ...

  7. java 基础知识-数组的7种算法(排序、求和、最值、遍历...)

    遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5];Scanner inp ...

  8. java基础_数组常用算法

    求数组最大值代码如下 package java_test; /*求数组的最大值* */ class Sdent{public void inputMax(int [] a){int max=a[0]; ...

  9. 第一阶段:Java基础之数组

    注意点: @Java语言是把数组当作一个"对象"来看待的 @把数组分为两部分看,一部分是数组的引用,放置在栈内存中,一部分是数组对象,放置在堆内存中 @数组的引用可以指向任何有效的 ...

最新文章

  1. LeetCode实战:最长回文子串
  2. 编程方法学笔记:karel
  3. 第一阶段:Java基础之数组
  4. E820-DTU模拟量无线数传电台:物联网工业现场无线数传应用
  5. highlight.js css,JS库之Highlight.js的用法详解
  6. GWR4软件怎么用+结果解读+结果在ArcGIS中可视化
  7. 关于:在 Office 2021 中自定义模板
  8. lammps教程:如何更清晰观察晶体结构?Ovito渲染技巧介绍
  9. STM32cubemx教程及STM32入门(一)
  10. 2022年调味品行业研究报告
  11. 自恢复保险丝选型说明
  12. 在HTML中 怎么一张图片上在放一张图片,css sprites把很多小图集成在一张图片上...
  13. 22计算机考研上岸个人经验近万字分享(11408初试360分)
  14. Qt 设置父控件样式不影响子控件的解决方法
  15. 单剂量给药下仓室药物模型半衰期的计算
  16. excel最强教科书电子版_Excel最强教科书(完全版全彩印刷)
  17. Android手游外挂入侵----寓攻于守,方能破敌
  18. VLOOKUP函数反向查找(需要用IF函数把数据源倒置一下)
  19. 《诚信》——赤兔之死
  20. 数据库中各表关联图及其说明_如何在图中思考:图论及其应用的说明性介绍

热门文章

  1. Selenium滚动条window.scrollTo和window.scrollBy
  2. Docker网络解决方案-Weave部署记录
  3. 杭电1203--I NEED A OFFER!(01背包)
  4. routerOS限速限流量
  5. Facebook 开源代码分析工具 —— Mariana Trench
  6. MySQL 死锁专题问题处理
  7. Javascript语法基础 - Javascript核心(一)
  8. 深度学习 --- 基于RBM的深度置信网络DBN-DNN详解
  9. 程序员的相亲那件小事,指南献给您
  10. Linux虚拟机连不上网克隆虚拟机网卡无法启动