java基础(4)-数组(1)
数组:存储同一种数据类型的多个元素的容器
数组初始化:
- 元素类型[] 数组名 = new 元素类型[数组长度]
int [] arr = new int[5] - 元素类型[] 数组名 = new 元素类型[] {元素,元素,...}
int [] arr = new int [] {1,2,3,4,5}
int [] arr = {1,2,3,4,5}
内存分配
栈内存:用于存储局部变量,当数据使用完时,所占空间会自动释放。一些基本类型的变量和对象的引用变量都是在函数栈内存中分配
堆内存:用于存放由new创建的对象和数组
方法区:
堆内存特点:
每个new出来的东西都有地址值
每个变量都有默认值
常见数组操作
- 获取数组中的元素
class ArrayDemo3{
public static void main(String[] args){
//int[] arr = new int[3];
int[] arr = {,,,,,};
for(int i=;i<arr.length;i++){
System.out.println("arr["+i+"]="+arr[i]+";");
}
} }
/*
arr.lenth 表示返回数组arr的长度 */
- 数组元素求和
class ArraySum{
public static void main(String[] args){
int[] arr = new int[]{,,,,,,,,,};
int sum = ; for(int i=;i<arr.length;i++){
sum += arr[i];
}
System.out.println("sum="+sum);
} }
- 遍历数组中的元素
public class ArrayDemo4{
public static void main(String[] args){
int[] arr = new int[]{,,,};
// printArray(arr);//可以直接调用,也可以ArrayDemo4.printArray(arr);
printArray1(arr);
} public static void printArray(int[] arr){ //注意这是静态方法
for(int i = ;i<arr.length;i++){
System.out.println(arr[i]);
} } public static void printArray1(int[] arr){
for(int i = ;i<arr.length;i++){
if(i==arr.length-){ //如果是最后一个元素
System.out.println(arr[i]);
}else{ //如果不是最后一个元素
System.out.print(arr[i]+",");
}
} } } /*
运行结果:
1,2,34,4 */
- 求最大值和最小值
class ArrayTest1{
public static void main(String[] args){
int[] arr = new int[]{,,,};//定义一个数组
/*
int max = arr[0];
for(int i = 1; i<arr.length;i++){
if(arr[i]>max){
max = arr[i];
}
} System.out.println(max);
*/ int max = getMax(arr);//静态方法可以直接调用
// System.out.println(max); int min = getMin(arr);
System.out.println(min);
} public static int getMax(int[] arr){
//找数组中任一元素作为参照物
int max = arr[];
//遍历其他元素
for(int i = ;i<arr.length;i++){
//依次获取和参照物比较,如果大就留下来,小酒离开
if(arr[i]>arr[]){
max = arr[i];
}
}
//参照物里面保存的即为最大值
return max;
} public static int getMin(int[] arr){
int min = arr[];
for(int i = ;i<arr.length;i++){
if(arr[i]<min){
min = arr[i];
}
}
return min; } }
- 数组反转
class ArrayDemo{
public static void main(String[] args){
int[] arr = new int[]{,,,,};
System.out.print("原数组:");
printArray(arr); System.out.print("反转后数组:");
reverseArray(arr);
} //遍历数组
public static void printArray(int[] arr){
for(int i = ;i<arr.length;i++){
// System.out.println(arr[i]);//将每个元素输出,一个元素一行
if(i == arr.length-){
System.out.println(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
} //反转数组
public static void reverseArray(int[] arr){
for(int i = ;i<arr.length/;i++){
int temp = arr[i];
arr[i] = arr[arr.length--i];
arr[arr.length--i] = temp; }
printArray(arr);//这里调用打印数组方法,不能直接打印arr,这样是地址值
} } /* 原数组:112,32,45,543,76
反转后数组:76,543,45,32,112 */
- 选择排序
class ArrayTest2{
//排序方法
public static void selectSort(int[] arr){
for(int x=;x<arr.length;x++){
for(int y=x+;y<arr.length-;y++){
if(arr[x]>arr[y]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
} //主方法
public static void main(String[] args){
int[] arr = {,,,,,,};
printArray(arr);
selectSort(arr);
printArray(arr);
} //打印数组方法
public static void printArray(int[] arr){
System.out.print("[");
for(int x=;x<arr.length;x++){
if(x!=arr.length-){
System.out.print(arr[x]+",");
}else{
System.out.println(arr[x]+"]");
}
}
}
}
java基础(4)-数组(1)的更多相关文章
- Java基础-反转数组
/** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- java基础(十) 数组类型
1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...
- java 基础概念 -- 数组与内存控制
问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...
- Java基础之数组类型
对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大 ...
- 黑马程序员——JAVA基础之数组
------- android培训.java培训.期待与您交流! ---------- 数组: 数组的定义: 数组是相同类型数据的集合, 描述的是相同类型的若干个数据按照一定的先后顺序排列组合而成,其 ...
- Java基础从数组到集合之间关键字的区别!!!!
1.&& 和 &区别和联系: 相同点 : 结果是一样的. 不同点 :如果使用双&号判断,如果说条件一为false,不会判断条件二,但是单&号会继续判 ...
随机推荐
- jdbc PreparedStatement 防止sql注入的关键代码片段
mysql-connector-java-5.1.38.jar PreparedStatement 的 setString(int parameterIndex, String x) 方法 for ( ...
- MySQL中数据中设计中的范式与反范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小.但是有些时候一昧的追求范式减少冗余,反而会降低数据读写 ...
- 介绍一下Python中webbrowser的用法?
webbrowser模块提供了一个高级接口来显示基于Web的文档,大部分情况下只需要简单的调用open()方法.webbrowser定义了如下的异常:exception webbrowser.Erro ...
- Json模块的详细介绍(序列化)
什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现在我们能想到的方法就是存在文件里,然 ...
- element-ui tree组件 return span 标签报错
原因: webpack无法解析vue-jsx的语法问题 解决方案 (1).安装依赖 [babel-plugin-transform-vue-jsx][1] npm install\ babel-plu ...
- jquery on 确认删除
$(document).on('click', '.delbtn', function() { if (confirm("确定要删除吗?")) { ...
- Linux学习笔记(2)linux系统信息与进程相关命令
man 获得命令的帮助手册,如man cp:按q键退出 su 切换用户,如su - root; '-'表示改变用户的环境变量 who 显示系统中登录的用户 w 显示登录用户的详细信息 last 查看最 ...
- STL之内存处理工具
STL处理内存主要是使用五个全局函数construct,deconstruct,construct实现: template<typename T1,tyname T2> void cons ...
- 基于twemproxy的redis集群部署
一.系统及软件版本 操作系统:CentOS Linux release 7.3.1611 (Core) 内核版本:3.10.0-514.el7.x86_64 redis版本:3.2.8 twempro ...
- AFNetworking 和 ASIHTTPRequest
在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法, ...