一些小思考题:

1.什么时候为数组分配内存?
数组在初始化时分配内存

2.数组一旦被创建,大小能不能改变?
数组一旦被创建,它的大小就不能改变,可以使用array.length的得到数组的大小。
int[] list;
list = new int[10];//初始化数组
list = new int[20];//重新给数组变量赋值,而不是改变原数组的大小

3.实参是如何传递给方法的?实参可以和形参同名吗?
调用方法时,程序给形参分配存储空间,将实参的值赋给形参。
形参是局部变量,与实参不在同一个作用域,因此,能同名。

4.什么是方法的重载?能根据方法的修饰符或返回值类型进行重载吗?
方法重载:方法名相同,参数列表(参数类型、参数顺序和参数数量)不同
不能根据方法的修饰符或返回值类型进行重载。因为方法调用可作为一个值来处理,
也可作为语句处理,如:int val=fun()和fun(),当作为语句处理时,编译器不能区分
应该调用谁。

关于数组基础的一些编程题。

1.写一个函数,计算一个整数数组的平均值

public class threeA {public static void main(String[] args) {int[] list = {1,2,1,3,3};ave(list);}public static void ave(int[] list){int sum = 0;int res;for (int i = 0; i < list.length; i++) {sum = sum + list[i];}res = sum / list.length;System.out.println(res);}
}

2.自定义一个整数数组a,读入一个整数n,如果n在数组中存在,
* 则输出n的下标;如果不存在,输出-1;(*)

import java.util.Scanner;public class threeB {public static void main(String[] args) {int[] array = {1,2,6,8,9};System.out.println("请输入一个你要查询的整数n:");Scanner scanner = new Scanner(System.in);int s = scanner.nextInt();boolean bool = true;for (int i = 0; i < array.length; i++) {if (s == array[i]){System.out.println("数组下标为:"+i);bool = false;break;}}if(bool){System.out.println(-1);}}
}

3.输出一个给定数组的最大最小值。

public class threeC {public static void main(String[] args) {int[] array = {1,6,9,87,5,4};int max = 0;int min = 0;max = min = array[0];for (int i = 1; i < array.length; i++) {if (array[i]>max){max = array[i];}if (array[i]<min){min = array[i];}}System.out.println("max="+max);System.out.println("min="+min);}
}

4.给定一个数组,把数组的元素顺序颠倒并输出

import java.util.Arrays;
public class threeD {public static void main(String[] args) {int[] arr = {2,5,9,6,7};for (int i = 0; i < arr.length/2; i++) {//arr.length/2,如果循环arr.length次,则又回到之前的数组int temp = arr[i];arr[i] = arr[arr.length-1-i];arr[arr.length-i-1] = temp;}System.out.println(Arrays.toString(arr));//Arrays.toString(arr)打印数组}
}

5.冒泡排序

public class threeE {public static void main(String[] args) {int[] a = {1,3,2,7,5};int len = a.length;for (int i = 0; i <len; i++) {for (int j = 0; j < len-i-1; j++) {if (a[j]>a[j+1]) {int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}for (int c: a){System.out.print(c+",");}}
}

6.插入排序

public class threeG {public static void main(String[] args){int[] arr = {6,8,9,1,4,3};int len = arr.length;for(int i = 1; i < len; i++){int temp = arr[i]; //记录操作数int j = 0;for(j = i - 1; j >= 0; j--){if(arr[j] > temp){arr[j+1] = arr[j];}else{break;}}if(arr[j+1] != temp){arr[j+1] = temp;}}for(int n : arr){System.out.print(n+",");}}
}

7.数组的基本工具

import java.util.Arrays;
public class threeF{public static void main(String[] args){int[] num = {45,65,75,87,98,901};//二分查找int index = Arrays.binarySearch(num,98);System.out.println("找到的下标是" + index);//输出数组for(int n : num){System.out.println(n);}System.out.println(Arrays.toString(num));Arrays.sort(num);//排序int[] num2 = {10,32,15,9,564,31};Arrays.sort(num2);//快速排序System.out.println(Arrays.toString(num2));//数组的复制int[] num3 = Arrays.copyOf(num2,10);System.out.println(Arrays.toString(num3));//int[] newNum = new int[num2.length];System.arraycopy(num2,0,newNum,0,num2.length);System.out.println(Arrays.toString(newNum));//小结,数组的复制/*效率由高到低排序是:System.arraycopy->Arrays.copyOf->for*///判断两个数组的值是否相等System.out.println(Arrays.equals(num2,newNum));//填充数组Arrays.fill(newNum,0);System.out.println(Arrays.toString(newNum));}
}

8.最大公约数,最小公倍数

import java.util.Scanner;public class threebyone {public  int mincom(int m,int n){int temp;int t = 0;if(m<n){temp = n;n =m;m =temp;}if(m%n ==0) return n;elsereturn mincom(m-n,n);}public  int maxcom(int m,int n){return m*n/mincom(m,n);}public static void main(String[] args) {threebyone com = new threebyone();Scanner input = new Scanner(System.in);System.out.println("此程序的目的是求两个正整数的最大公约数");System.out.println("请输入第一个数");int m = input.nextInt();System.out.println("请输入第二个数");int n = input.nextInt();int max = com.maxcom(m,n);int min = com.mincom(m,n);System.out.println("m和n的最大公约数是"+max);System.out.println("m和n的最小公倍数是"+min);}
}

9.计算字符数组中字母出现的次数and字符串中字母出现次数

import java.util.Scanner;
public class threebytwo {public static void main(String[] args) {char[] chs = {'a','a','d','c','a','b'};Scanner scanner = new Scanner(System.in);System.out.println("请输入你的字符:");//Scanner输入,转化为char类型char c = scanner.next().charAt(0);//charAt返回指定位置的char值int count = 0;for (int i = 0; i < chs.length; i++) {if (chs[i] == c){count++;}}System.out.println("a出现的次数是:"+count);/*** 字符串中字母出现次数*/
//        Scanner scanner = new Scanner(System.in);
//        System.out.println("请输入你的字符:");
//        String str = scanner.nextLine();
//        System.out.println(str);
//        System.out.println("请输入一个你需要统计的字母:");
//        Scanner scanner1 = new Scanner(System.in);
//        String c = scanner1.nextLine();
//        int count = 0;
//        int start = 0;
//        //indexOf返回指定子字符串在此字符串中第一次出现处的索引
//        while(str.indexOf(c,start) >= 0 && start < str.length()){
//            count++;
//            start = str.indexOf(c,start) + c.length();
//        }
//        System.out.println(c+"出现的次数是:"+count);}
}

JAVA程序设计----数组基础相关推荐

  1. Java程序设计语言基础04:数组

    目录 1. 数组基础 1.1 创建数组 1.2 使用数组 2. 数组的"名"与"实" 2.1 数组的"名" 2.2 数组的"实&q ...

  2. JAVA程序设计----集合基础之Collection

    思考题: 1.Set和List有哪些区别? List是有序的可重复的Collection,使用此接口能够精确的控制每个元素插入的位置.能够使用索引高效地访问List中的元素,这类似于Java的数组.S ...

  3. Java程序设计语言基础01:绪论

    目录 1. 初探HelloWorld程序 1.1 类(Class)语法元素 1.2 main方法(main method)语法元素 1.3 System.out.println 1.4 字符串 2. ...

  4. java程序设计_JAVA基础程序设计之方法

    1 基本概念 Java 方法是语句的集合,它们在一起执行一个功能. l 方法是解决一类问题的步骤的有序组合 l 方法包含于类或对象中 l 方法在程序中被创建,在其他地方被引用 1.1 方法的定义 一般 ...

  5. Java程序设计语言基础05:Java的类和对象

    目录 1. 类的定义与组成 1.1 类的定义 2.2 类的使用 2. 类.对象和引用 2.1 类 2.2 对象 2.3 引用 3. 类的知识扩展 3.1 成员变量初始值 3.2 在类中定义自己的引用 ...

  6. Java程序设计语言基础02:Java中的基本数据类型和运算符

    目录 1. Java中的基本数据类型 1.1 概述 1.2 基本数据类型的值域 1.2.1 byte类型 1.2.2 short类型 1.2.3 int类型 1.2.4 long类型 1.2.5 fl ...

  7. Java入门 - 数组基础

    第1关:初识数组 任务描述 本关任务:定义数组,使用数组. 相关知识 问:道友,我要保存4名学生的考试成绩,怎么办? 答:简单啊,定义四个变量呗. 问:那"计算全年级500名学生的考试成绩的 ...

  8. 头歌(educoder)第 3 章 Java入门之数组 Java入门 - 数组基础

    目录 第1关:初识数组 第2关:数组的使用 第3关:选择题(1)​编辑 第4关:数组练习-平均值和最大值 第5关:二维数组 第6关:选择题(2) 第1关:初识数组 package step1;publ ...

  9. Java关于数组基础的讲解

    一.数组 1.一维数组 概念:一组数据的容器(数组可以存放多个数据) 注意: 1.数组是引用数据类型 2.数组中的数据又叫做元素 3.每个元素都有编号叫做下标/索引 4.下标从0开始 5.数组初始化后 ...

最新文章

  1. Latex 参考文献,或者最后一页平衡
  2. zabbix企业应用之low level discovery监控磁盘吞吐量与iops
  3. WPF Multi-Touch 开发:惯性效果(Inertia)
  4. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)
  5. s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(三 APP应用)
  6. 关于ArcGIS Rest API
  7. PS 菜单栏显示与隐藏 - 快捷键
  8. 论述计算机科学与技术专业的狭义与广义,2013年秋季学期计算机科学与技术专业《高等代数》复习提纲与补充题...
  9. Capsule-LPI:基于胶囊网络的LncRNA-蛋白质相互作用预测工具
  10. 点击电脑版微信一直打不开解决方案
  11. win10计算机图片,Win10使用系统自带的电子相册整理电脑中照片方法图解
  12. 如何快速查询手机号码归属地和运营商
  13. 单片机C语言中关键词code的作用
  14. [分块]Most Influential Pumpkin
  15. 鸡汤_王石:你没有变强只因你一直很舒服
  16. python爬虫代理ip_Python爬虫如何获取代理ip及ip验证?
  17. 学java用哪个翻译器好_英语翻译器软件哪个好?用这两款就对了
  18. 【目标识别】--【截图程序】海康摄像头sdk二次开发自动多摄像头截图程序
  19. 支付宝新移动支付平台解析
  20. 第四讲 switch结构和循环(switch结构、while循环、do-while循环)

热门文章

  1. Gym - 101471D Money for Nothing(决策单调性+分治+贪心)
  2. 牛客 - Strange Bulbs(bitset优化拓扑)
  3. 在HTML5网页中写法正确的是,跟永哥学HTML5(4):正确使用HTML5的header、hgroup和section...
  4. SciencePlots科研绘图
  5. php 下载的压缩文件,php在线压缩打包rar并自动下载文件的例子
  6. vue index.html环境变量,vue-cli环境变量与模式
  7. 判断程序是否运行在虚拟机中的代码
  8. pycharm debug 断点调试
  9. 今日推荐:如何设计一个支撑数亿用户的系统
  10. 【网络传输与RTC】