Java基础学习--数组
1.数组的定义:
数组(Array)是相同数据类型的数据的有序集合。
2.数组的3个特点:
2.1数组长度是确定。数组一旦申请完空间,长度不能发生变化,用length属性访问。
2.2数组的元素都是同一数据类型。
2.3数组是有序的 。每个元素通过下标/索引标记,索引从0开始。
3.数组的3种声明方式:
3.1:
int[] arr = new int[2];
arr[0] = 10;
arr[1] = 20;
3.2:
int[] arr2 = new int[]{10,20,30,40,50};
3.3 :
int[] arr3 = {10,20,30,40};
4.数组的内存空间
数组的数据存储在堆空间中,声明数组时,在栈空间中存储数组在堆空间中的地址,所以数组时引用数据类型。

5.数组的遍历算法:
for(int i=0;i < arr.length;i++){
System.out.println("arr[" + i + "]" + "=" + arr[i]);
}
6.数组的常用算法
6.1插入算法
|
public class Test07{ public static void main(String[] args){ // 一个有序的数组,向该数组中添加一个元素,数组依然有序。 int[] arr = {1,3,7,9,12,20,0}; int t = 0; // 【1】找位置 int loc = -1; // 表示t应该添加到的位置 for(int i = 0;i<arr.length-1;i++){ if(arr[i] >= t){ loc = i; break; } } System.out.println("loc = "+loc); if(loc < 0){ // 没找到合适的位置 arr[arr.length-1] = t; }else{ // 【2】依次后移 for(int j=arr.length-1;j>loc;j--){ arr[j] = arr[j-1]; } // 【3】添加插入的值 arr[loc] = t; } // 验证 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } } } |
6.2删除算法:
|
public class Test08{ public static void main(String[] args){ // 删除算法 int[] arr = {1,3,7,9,12,20}; int t = 1; // 【1】找位置 int loc = -1; for(int i=0;i<arr.length;i++){ if(t == arr[i]){ loc = i; break; } } // 【2】移动元素 if(loc < 0){ System.out.println(t+"在数组中不存在"); }else{ for(int j = loc;j<arr.length-1;j++){ arr[j] = arr[j+1]; } // 【3】最后一个元素置0 arr[arr.length-1] = 0; } // 验证 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } } } |
6.3冒泡排序算法
|
public class Test10{ public static void main(String[] args){ // 对一个无序的数组进行排序 int[] arr = {10,5,3,4,2,9,7}; int tmp = 0; for(int i=0;i<arr.length-1;i++){ // 外层控制趟数 for(int j=0;j<arr.length-1-i;j++){ // 两两比较 if(arr[j]>arr[j+1]){ tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } } } |
Java基础学习--数组的更多相关文章
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习(3)
Java基础学习(三) Java异常 Throwable类:所有异常的祖先类 Error:虚拟机异常.内存错误.没法处理 Exception:编码.环境.用户操作输入出现问题 非检查异常(自动捕获): ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
随机推荐
- JMeter接口测试实战-动态数据验证
JMeter接口测试实战-动态数据验证 说到验证就不得不说断言, 先来看下JMeter官方给出断言(Assertion)的定义, 用于检查测试中得到的响应数据等是否符合预期,用以保证测试过程中的数据交 ...
- rabbitmq之简述HAProxy配置集群过程
简介 HAProxy是一款提供高可用性.负载均衡以及基于TCP和HTTP应用的代理软件,HAProxy是完全免费的.借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案.HA ...
- python高级(4)—— 虚拟环境安装使用
虚拟环境 什么是虚拟环境 对电脑稍微有点常识的朋友相信都玩过,比如VMware,virtualbox,或者你用电脑端的模拟器玩手机端的游戏也是一样,其实就是一个假的空间,在Python这里,虚拟环境就 ...
- lodash源码分析之去重--uniq方法
lodash.js包是node开发中常用的js工具包,里面有许多实用的方法,今天分析常用的一个去重方法---uniq 用法 _.uniq([2, 1, 2]) // => [2, 1] 源码包 ...
- FIFO深度计算
本文设计思想采用明德扬至简设计法.在使用FPGA设计系统时,常需要利用FIFO进行数据缓存保证数据不丢失,因此计算FIFO深度是至关重要的.FIFO的深度主要取决于“最恶劣”的情况,以下对于两种最常见 ...
- 如何自己制作CHM电子书?
软件介绍: EasyCHM 非常适合个人和单位制作高压缩比的有目录.索引,同时具有全文检索及高亮显示搜索结果的网页集锦.CHM格式的帮助文件.专业的产品说明书.公司介绍.文章集锦.CHM电子书等等. ...
- com.netflix.zuul.exception.ZuulException: Hystrix Readed time out
通过API网关路由来访问用户服务,zuul默认路由规则 :http://zuul的Host地址:zuul端口/要调用的服务名/服务方法地址 浏览器中打开http://127.0.0.1:8000/wa ...
- redis报错:java.net.SocketException: Broken pipe (Write failed); nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Broken pipe (Write failed)
最近写了一个服务通过springboot构建,里面使用了redis作为缓存,发布到服务器运行成功,但是有时候会报redis的错误:org.springframework.data.redis.Redi ...
- Elastic Stack-Kibana使用介绍(七)
一.前言 主要来讲述一下Kibana使用以及上生产时候的一些配置,要是大家对这块比较感兴趣我到时候也可以在结合Grafana做一些图表方面的介绍,后面等介绍完Beats以后我去阿里云租几台机器 ...
- python-三级菜单-67
menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车之家': ...