java 基础 数组2
变量:存储单个数据
数组:存储多个数据 数组的特点:1.数组是一个引用数据类型2.数组是一个容器,长度一旦确定不能改变3.数组中数据类型相同4.数组中数据是有序的数组的声明方式:1. 数据类型[] 数组名;
数据类型: 当前数组中所有数据的数据类型 基本数据类型|引用数据类型
操作数组中的数据: 0~ 数组名.length-1(数组名。index)索引|下标 从0开始 数组名[索引]
在数组中最后一个数据的索引: 数组名.length-1
数组的长度 :数组名.length 数组的遍历:1.普通for循环2.增强for循环 for..eachfor(数据类型 变量名i:容器名|数组名){i就是数组中的每一个数据,不是索引 从前向后遍历}增强for只能获取值不能赋值
数组:数组是存储同一种数据类型数据的集合容器。
数组的定义格式:
数据类型[] 变量名 = new 数据类型[长度];
分析数组:
左边: int[] arr 声明了一个int类型的的数组变量,变量名为arr。
int : 表示该数组容器只能存储int类型的数据。
[] : 这是一个数组类型。
arr : 变量名.
右边:new int[50]; 创建了一个长度为50的int类型数组对象。
new : 创建数组对象的关键字。
int: 表示该数组对象只能存储int类型数据。
[]: 表示是数组类型。
50 : 该数组最多能存储50个数据。数组的容量。
数组的好处: 对分配到数组对象中每一个数据都分配一个编号(索引值、角标、下标),索引值的范围是从0开始,最大是: 长度-1.
局部变量: 如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。
成员变量: 成员变量就是定义在方法之外,类之内的.
class Demo4 如何静态赋值 查看容量 返回全部值。
{
public static void main(String[] args)
{
//定义一个数组
int[] arr = new int[4];
arr[0] = 10;
arr[1] = 30;
arr[2] = 50;
arr[3] = 90;
//System.out.println(“数组的容量:”+ arr.length); //数组的有一个length 的属性,可以查看数组 的容量。
//System.out.println("arr[2] = "+ arr[2]);
//查看数组中的所有数据。
for(int index = 0 ; index<arr.length ; index++){
System.out.println(arr[index]);
}
}
数组的内存分析:
class Demo5
{
public static void main(String[] args)
{
int[] arr1 = new int[2];
int[] arr2 = new int[2];
arr1[1] = 10;
arr2[1] = 20;
System.out.println(arr1[1]); // 吴: 10 李:10
int[] arr1 = new int[2];arr1[1] = 100;int[] arr2 = arr1;arr1[1] = 10;arr2[1] = 20;System.out.println(arr1[1]); // 20 20 20
}
数组中最常见的问题:
1. NullPointerException 空指针异常
原因: 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。
2. ArrayIndexOutOfBoundsException 索引值越界。
原因:访问了不存在的索引值。
class Demo6
{
public static void main(String[] args)
{
int[] arr = new int[2];
arr = null ; //null 让该变量不要引用任何的对象。 不要记录任何 的内存地址。
arr[1] = 10;
System.out.println(arr[1]);
int[] arr = new int[4];arr[0] = 10;arr[1] = 30;arr[2] =40;arr[3] = 50;//System.out.println(arr[4]); //访问索引值为4的内存空间存储的值。 for(int index = 0 ; index<=arr.length ; index++){System.out.print(arr[index]+",");}
}
}
需求:编写一个数组的工具类。
Arrays.toString() [1,2,3,4];
sort()
//数组工具类
class ArrayTool{
public static String toString(int[] arr){String result = "";for(int i = 0; i < arr.length ; i++){if (i==0){result+="["+arr[i]+",";}else if(i==(arr.length-1)){result+= arr[i]+"]";}else{result+=arr[i]+",";}}return result;
}
public static String toString(int [] arr){
String result="";
for(int i=0;i<arr.length;i++){
if(i0){
result="["+arr[i]+","+result;
}else if(i(arr.length-1)){
result=arr[i]+"]";
}else{
result=arr[i]+","+result;
}
}
}
public static void sort(int[] arr){for(int i = 0; i < arr.length-1 ; i++){for(int j = i+1 ; j<arr.length ; j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}
}
}
class Demo3
{
public static void main(String[] args)
{
int[] arr = {12,1,456,165};
//ArrayTool tool = new ArrayTool();
ArrayTool.sort(arr);
String info = ArrayTool.toString(arr);System.out.println("数组的元素:"+ info);
}
}
/*/**
public class Demo05{
public static void main(String[] args){
//动态初始化:
double[] arr=new double[4];
//通过索引获取值
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
//通过索引赋值arr[0]=1;arr[1]=2;arr[2]=3;arr[3]=4;System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);//静态初始化 char[] arr2=new char[]{'a','b','c'};System.out.println(arr2); //字符数组->可以直接打印数组中的内容System.out.println(arr2[0]);System.out.println(arr2[1]);System.out.println(arr2[2]);//推荐 静态初始化的简略定义方式String[] arr3={"杨建秋","宋灿","戴子烨","李凯","丁胜胜"};System.out.println(arr3); System.out.println(arr3[0]); System.out.println(arr3[1]);System.out.println(arr3[2]);System.out.println(arr3[3]);System.out.println(arr3[4]);//普通for 遍历的是数组的索引for(int i=0;i<arr3.length;i++){System.out.println(arr3[i]);}//for .. eachfor(String i:arr3){System.out.println(i);}int[] arr4=new int[6];int num=11;//普通for循环赋值for(int i=0;i<=arr4.length-1;i++){ //i代表数组的索引arr4[i]=num;num++;}//遍历 只能获取值不能赋值for(int i:arr4){System.out.println(i);}arr=new double[1];arr3=new String[]{"你好"};
}
}
java 基础 数组2相关推荐
- Java基础---数组练习(最大值、最小值的索引)
Java基础–数组练习 1.将一维数组的遍历,封装成方法public static void arrayBianli(int[] arr) {for(int i = 0;i<arr.length ...
- Java基础——数组应用之StringBuilder类和StringBuffer类
接上文:Java基础--数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...
- Java基础数组编写酒店管理系统
文章目录 Java基础数组编写酒店管理系统 需求说明: 实现代码: ①酒店类(Hotel.java) ②房间类(Room.java) ③酒店管理测试类(HotelMgtSystem.java) 测试结 ...
- Java 基础——数组解析
数组对于每一门编辑应语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 可以声明一个数组变量,如numbers[100 ...
- Java基础---数组内容详解
数组 概念:内存中开辟的一块连续的空间,用来存储有限个相同数据类型的数据定义格式:元素的数据类型[] 数组名称 = new 元素的数据类型[数组长度]简化格式:元素的数据类型[] 数组名称 ={值1, ...
- 【Demo 0003】Java基础-数组
本章学习要点: 1. 了解数组的基本概念: 2. 掌握数组使用方法: 一.数组的基本概念 1. 数组定义: 同一数据类型数据的集合,在Java中它也是一种数据类型:数组按 ...
- Java基础——数组实现+排序实现福利彩票抽奖
import java.util.Arrays; import java.util.Random; import java.util.Scanner;/*** 31选7* 1,获取中奖号码* 1,需要 ...
- 康师傅-java基础-数组
p156 - p 一维数组 声明.分配空间.赋值 type[] var; Java 语言中声明数组是不能指定其长度(数组中元素的数),例如:int a[5]; 动态初始化:数组声明且为数组元素分配空间 ...
- 黑马程序员——Java基础---数组与集合之间转换
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- Java基础--数组的认识(通透!!!)
文章目录 一/简单回顾 二/ 引子 三/ 数组 (1)概念 (2)性质 (3)写法 1)数组的声明(创建) 2)举例 3)补充 (4)数组的初始化 1)静态初始化 2)动态初始化 3)总结 (5)数组 ...
最新文章
- QuartZ Cron表达式详解
- 【Linux】一步一步学Linux——gdb命令(258)
- 推荐:Dapper扩展-Dapper.SimpleCRUD
- 【Flink】Flink 消费 kafka 实现 限流处理 RateLimiter
- 《机器学习实战》第二章学习笔记:K-近邻算法(代码详解)
- XX基金 机器学习平台使用情况访谈总结
- Acer 4750 安装黑苹果_黑苹果 MacOS 10.15 Catalina 最新安装教程
- 把业务逻辑变成数据结构和SQL语句的例子。自然架构改成自然框架
- ES(Elasticsearch)更改字段索引
- 【栈】实现逆波兰计算器
- 传统数据与大数据对比
- Linux【网络库】| 【02 <netdb.h>】以及网络常用结构体
- VS Code 报Windows找不到文件‘chrome‘. 请确定文件名是否正确后,再试一次。八种解决办法
- MySQL提权——udf提权
- 极其简单的Flutter 屏幕适配
- mysql root password_MYSQL安装时解决要输入current root password的方案
- Android TabLayout修改指示器宽度方案汇总
- VBA中引用单元格与区域
- [申卡心得] 农行最新最全申请进度代码汇总!
- 王维:送綦毋潜落第还乡
热门文章
- 联想电脑管家哪里下载及验证保修期
- FreeRTOS(基础)
- Packet Capture(Android APP端抓包工具)
- Vue+i18n多语言动态设置(保姆级案例教程)
- 电子地图2007_科技观察 ▏电子地图,不止出行!
- AttributeError: XX object has no attribute XX问题案例分享
- 教程-利用壹伴插件一键采集图文
- 品牌好的舆情数据监测平台有哪些,品牌舆情趋势监测方案?
- 【正点原子FPGA连载】第十一章 触摸按键控制LED灯实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
- 服务器查看光模块信息的命令,能不能通过命令查看到端口上所接光模块的信息...