数组相关
来源:互联网 发布:手机多大内存够用 知乎 编辑:程序博客网 时间:2024/05/29 02:40
数组
数组:一组能够存储相同数据类型的变量的集合当我们有一组相同类型的数据需要存储,如果此时使用单个变量来存储,我们将要定义若干个变量名,这样将会非常繁琐,并不利于维护
(1)数组必须要有长度
(2)所有数组都有一个length属性(一个食物特征)
数组声明:
(1)先声明,在分配空间
int[] x;//声明(定义)一个整形数组
x = new int[3];//new关键字就是用于向内存申请空间。有JVM分配
给数组中的空间赋值(每一个空间中的值我们称为元素)
数组空间的位置称为下标,下表从0开始
数组的空间是连续的
分配的空间会根据不同的数据类型有默认值
数组下表的最大值是数据长度-1
(2)声明并分配空间
int[] x = new int[3];//声明一个整型数组并申请内存空间
(3)声明,分配空间,并赋值
int[] x = new int[]{1,2,3};
简写:int[] x = {1,2,3};
内存管理:
简单理解:把JVM的内存分为栈内存和堆内存
栈内存:存储数据是:变量名,局部变量,临时变量,参数(基本数据类型)、可以存入地址(如:数组的引用地址)与基本数据类型的值;是一种数据存储结构,先进后出
堆内存:存储数据是:数组和对象
(1)数组是存储在堆内存中
从大小上看,栈内存要比堆内存块
从存储数据灵活性看,堆内存要栈内存更灵活
多维数组:
JAVA中没有真正意义上的多维数组
多维数组中的元素定义为数组来表示
多维数组中的每个数组元素可以不同
多维数组表现为一个矩阵
下标使用行位置和列位置来确定
小结:数组是一种数据结构(线性),有序排列,我们在使用数组时,要保证数组元素的连续性。数组的大小必须固定,通常情况下,数组不建议做删除操作,如果要删除某一个元素,我们的算法是要
保证数据的连续性,被删除的元素之后的元素要依次往前移动来保证连续性。这样的好处是为了提高数组的添加元素操作。
数据是不利于删除和插入操作,更适合存取操作
两个变量a,b不通过第三个变量,如何交换值:
int a = 10;
int b = 12;
a = a+b;
b = a-b;
a = a-b;
a=a^b;
b=a^b;
a=a^b;
冒泡排序法
//稳定的算法:当序列中有相同的数,排序后位置保持不变
//两个相邻的数相比,大的在后,小的在前
public class MaoPao {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] num = {23,2,18,90,7,56};
int temp = 0;
for (int i = 0; i < num.length-1; i++) {
for (int j = 0; j < num.length-1-i; j++) {
if(num[j]>num[j+1]){
/*temp = num[j];
num[j] = num[j+1];
num[j+1]=temp;*/
/*
* num[j]=num[j]+num[j+1];
* num[j+1]=num[j]-num[j+1];
* num[j]=num[j]-num[j+1];
*/
num[j]=num[j]^num[j+1];
num[j+1]=num[j]^num[j+1];
num[j]=num[j]^num[j+1];
}
}
}
System.out.println(Arrays.toString(num));
}
}
选择排序
import java.util.Arrays;
/**
* 选择排序算法:
* 从小到大排
* 以第一个数为最小数,依次同其它数比较,然后交换位置
* 是不稳定的算法
*/
public class SelectDemo {
public static void main(String args[]){
int[] num = {74,2,54,7,22,5};
int minIndex = 0;
for (int i = 0; i < num.length-1; i++) {
minIndex=i;
for(int j=i+1;j<num.length;j++){
if(num[minIndex]>num[j]){
minIndex = j;
}
}
if(minIndex!=i){
int temp = num[minIndex];
num[minIndex]=num[i];
num[i]=temp;
}
}
System.out.println(Arrays.toString(num));
}
}
- 数组相关
- 数组相关
- 相关数组
- 数组相关
- 数组相关
- 数组相关
- 数组相关
- 数组相关操作
- php 数组相关操作
- 数组的相关操作
- 数组排序相关
- C++ 数组相关
- 字符数组相关操作
- 数组相关的指针
- PHP数组相关函数
- 动态数组相关操作
- 数组 与 List 相关
- 数组相关问题
- 修改eclipse编码
- dmalloc检测程序内存泄漏
- realloc
- 详解Angular的数据显示优化处理
- 使用Google的prettify高亮显示代码
- 数组相关
- 笔记——Texture Synthesis Using Convolutional Neural Networks (Leon A. Gatys et al)
- 104. Maximum Depth of Binary Tree
- leecode 解题总结:363. Max Sum of Rectangle No Larger Than K
- android中Intent学习笔记
- android studio心得
- 替换空格
- 513. Find Bottom Left Tree Value
- ucosii在stm32上的移植详解2