简单java数组程序_java(数组及常用简单算法 )
数组
数组:数组是存储同一种数据类型数据的集合容器。
数组的定义格式:
数据类型[] 变量名 = new 数据类型[长度];
数组的好处:对分配到数组对象中每一个数据都分配一个编号(索引值、角标、下标),索引值的范围是从0开始,最大是:长度-1。
局部变量:如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。
成员变量:成员变量就是定义在方法之外,类之内的.
数组中最常见的问题:
1.NullPointerException 空指针异常原因:引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。
2.ArrayIndexOutOfBoundsException索引值越界。原因:访问了不存在的索引值。
数组的初始化方式:
动态初始化:
数据类型[] 变量名 = new 数据类型[长度];
静态初始化:
数据类型[] 变量名 = {元素1,元素2.....};
如果程序一开始你就已经确定了数据,那么这时候建议使用静态初始化。如果数据一开始还不太明确,这时候就建议使用动态初始化。
class Demo7 {
public static void main(String[] args) {
//动态初始化
//int[] arr = new int[10];
//静态初始化
int[] arr = {10,20,30,40,50};
for(int index = 0 ; index
System.out.print(arr[index]+",");
}
/*
int[] arr = new int[50];
Scanner scanner = new Scanner(System.in);
for(int i = 0 ; i< arr.length ; i++){
arr[i] = scanner.nextInt();
}
*/
}
}
class Demo8 {
public static void main(String[] args)
{
int[] arr = {-12,-14,-5,-26,-4};
int max = getMax(arr);
System.out.println("最大值:"+ max);
}
public static int getMax(int[] arr) {
int max = arr[0]; //用于记录最大值
for(int i = 1 ; i < arr.length ; i++){
if(arr[i]>max){ //如果发现有元素比max大,那么max变量就记录该元素。
max = arr[i];
}
}
return max;
}
}
选择排序(直接排序):使用一个元素与其他 的元素挨个比较一次,符合条件交换位置。
class Demo9 {
public static void main(String[] args) {
int[] arr = {12,5,17,8,9}; //对于5元素的数组,只需要找出4个最大值就可以排序了。
selectSort(arr);
}
public static void selectSort(int[] arr) {
//把最大值放在首位置。
for(int j = 0; j
for(int i = j+1 ; i
if(arr[i]>arr[j]){
//交换位置
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
//遍历数组,查看效果
System.out.print("目前的元素:");
for (int i = 0 ; i
System.out.print(arr[i]+",");
}
}
}
冒泡排序:冒泡排序的思想就是使用相邻的两个 元素挨个比较一次,符合条件交换位置。
class Demo10 {
public static void main(String[] args) {
int[] arr = {12,8,17,5,9}; // 最大的索引值: 4 容量:5
bubbleSort(arr);
}
public static void bubbleSort(int[] arr){
// 把最大值放在最后一个位置
for(int j = 0 ; j
for(int i = 0 ; i
//相邻的元素比较
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
//遍历数组,查看效果
System.out.print("目前的元素:");
for (int i = 0 ; i
System.out.print(arr[i]+",");
}
}
}
折半查找法(二分法): 使用前提必需是有序的数组。
class Demo12 {
public static void main(String[] args) {
int[] arr = {12,16,19,23,54};
//int index = searchEle(arr,23);
int index = halfSearch(arr,116);
System.out.println("元素所在的索引值是:"+ index);
}
public static int halfSearch(int[] arr, int target){
//定义三个变量分别记录最大、最小、中间的查找范围索引值
int max = arr.length-1;
int min = 0;
int mid = (max+min)/2;
while(true){
if(target>arr[mid]){
min = mid+1;
}else if(target
max = mid -1;
}else{
//找到了元素
return mid;
}
//没有找到的情况
if (max
return -1;
}
//重新计算中间索引值
mid = (min+max)/2;
}
}
public static int searchEle(int[] arr, int target) {
for(int i = 0 ; i
if(arr[i]==target){
return i;
}
}
return -1;
}
}
二维数组: 二维数组就是数组中的数组。
二维数组的定义格式:
数据类型[][] 变量名 = new 数据类型[长度1][长度2];
二维数组 的初始化方式:
动态初始化:
数据类型[][] 变量名 = new 数据类型[长度1][长度2];
静态初始化:
数据类型[][] 变量名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...} ..}
class Demo16 {
public static void main(String[] args) {
int[][] arr = {{10,11,9},{67,12},{33,35,39,40}};
//遍历二维数组
for(int i = 0; i
for(int j = 0 ; j
System.out.print(arr[i][j]+",");
}
//换行
System.out.println();
}
}
}
数组的特点:
1.数组只能存储同一种数据类型的数据。
2.数组是会给存储到数组中的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1;
3.数组一旦初始化,长度固定。
4.数组中的元素与元素之间的内存地址是连续的。
简单java数组程序_java(数组及常用简单算法 )相关推荐
- java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用
java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用 七十年代,IBM的Smalltalk语言最先推广面向对象,后来C语言变为C++,后来C++又产生了J ...
- 简单Java小程序----有界面ATM机
继<简单Java小程序---无界面ATM机>以后,尝试对有界面ATM机改写,对面向对象的了解又深了一层! 桌面的创建过程 由于使用的NetBean软件没有提供专用的控件拖拽使用 ...
- java数组解析_Java - 数组解析
一.什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸是不可变的! 但是这只是数组的最表面的东西!深一点?就是这样 ...
- java抽奖程序_java怎么做出简单的抽奖程序?实例代码展示
自从20世纪90年代以来,java编程语言的发展如火如荼,不仅仅应用于高新产业的壮大发展,还涉及到了我们的日常生活,为我们的生活带来了更多的便利与快捷方法.今天主要为大家介绍一下,如何用java做出一 ...
- java合法的数组声明_Java数组详解
Java数组详解 数组详解 1.数组概述 数组是相同类型数据的有序集合 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 2.数组声明和创建 ①数组声明形式 dataType[] a ...
- java 数组效率_java数组复制的四种方法效率对比
有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? ...
- java类型的数组初始化_java数组初始化详解
介绍 学习Java的朋友想必对数组并不陌生,它需要使用之前对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使 ...
- java 数组成员_java 数组中含有
<数据结构与抽象:Java语言描述(原书第4版)>一2.2.1 可变大小数组 本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.2. ...
- java定义数组范围_Java数组的定义和使用
为什么需要数组? 问题:我们要计算30个学生的平均分 如果没有数组,我们的代码是这样的 int score1 = 32; int score2 = 56; int score3 = 78; //--此 ...
最新文章
- c语言菱形花圃,一种便于自动修剪花圃的电锯支架的制作方法
- 判断一个变量类型是数组还是对象
- java 全局变量 内存不回收_JAVA知识梳理:内存管理与垃圾回收机制
- 编译时错误之 error C2338: tuple_element index out of bounds
- 28muduo_net库源码分析(四)
- Eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法
- shift and算法
- sql union用法和sql union all用法,sql union效率
- OpenCV身份证离线识别技术实战(一)
- vue使用插件jsbarcode 生成条码下载
- 简易矩阵乘法计算器2.0
- 【Opencontrail】对接k8s基本原理
- 1179: 带参宏定义(函数专题)
- 如何裁剪动图大小?试试这个在线照片裁剪工具
- 基于GPT-4的免费代码生成工具
- microapp微前端基础使用
- EditPlus中文版+英文版+注册码下载
- Hadoop生态系统官网、下载地址、文档
- js css如何按比例放大视频或者图片
- python cnn 实例_学习python的算法-Faster RCNN算法复现
热门文章
- 课下作业——对正在使用的搜索类软件/输入法进行评价
- alert 乱码(转 学习)
- 软件工程1916|W(福州大学)_助教博客】助教总结
- PHP 结合redis实现高并发下抢购、秒杀
- 【Spark篇】---Spark调优之代码调优,数据本地化调优,内存调优,SparkShuffle调优,Executor的堆外内存调优...
- Qt富文本编辑器QTextDocument
- Akka边学边写(3)-- ByteString介绍
- ARC学习笔记(一)
- excel用警员姓名查找警号信息
- Windows域策略设置 禁止客户端上网【全域策略生效】