马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 糖逗 于 2020-8-16 20:59 编辑
学习视频:https://www.bilibili.com/video/BV17J411G72L?p=20
85-101
/*
*数组(有限个类型相同的变量)
*/
class test05_01{
public static void mian(String[] args){
int[] scores = new int[2];//声明数组
scores[0] = 99;
scores[1] = 100;
//打印数组的长度
System.out.println(scores.length);
}
}
/*
*数组初始化(1)动态初始化(2)静态初始化
*/
class test05_02{
public static void main(String[] args){
int[] scores;
//静态初始化
scores = new int[]{33, 45, 11, 87, 99, 100};
//遍历数组
for(int i = 0; i < scores.length; i++){
System.out.println(scores[i]);
}
}
}
/*
*静态数组内存
*int[] array = {1, 3, 4, 5};其中int[]是一种数据类型,数组类型,它是一种引用数据类型
*引用,表示引用一个对象,引用堆中的一块内存
*java程序是在JVM中运行的,JVM中的内存主要有两块区域:栈和堆
*其中栈存储局部变量(现在见到的变量都是局部变量)堆中存储的是对象
*array是引用数据类型,表示引用堆中这个对象的变量,数组名中存储的是数组的首地址
*
*1.数组下标为什么从0开始?下标表示的是这个元素的位置距离首地址的偏移量
*2.数组名中存储的是什么?数组名中存储的是数组在堆中的一整块区域的首地址
*3.数组的元素如何存储?在堆中依此连续的存储
*/
class test05_03{
public static void main(String[] args){
int[] array = {1, 3, 4, 5};
System.out.println(array);
//返回的结果是 数组对象的类型@对象的hashCode编码值
}
}
/*
*动态初始化(1)如果没有手动赋值之前,数组的元素有默认值
*元素是基本数据类型
*byte,short,int,long:0
*float,double:0.0
*char:\u0000 字符编码为0的空字符
*boolean:false
*元素是引用数据类型:null
*/
class test05_04{
public static void main(String[] args){
char[] letters;
letters = new char[26];
for(int i = 0; i < letters.length; i++){
letters[i] = (char)('A' + i);
}
}
}
/*
*数组初始化存储(动态数组)栈存储首地址
*/
class test05_05{
public static void main(String[] args){
int[] array = {1, 5, 7};
//最大值,最小值
int max = array[0];
for(int i = 1; i < array.length; i++){
if(array[i] > max)max = array[i];
}
System.out.println("最大值是:" + max);
}
}
/*
*数组反转(原地址不变)
*/
class test05_06{
public static void main(String[] args){
//(1)建立一个新数组,逆序赋值
char[] newLetter = new char[letters.length];
for(int i = 0; i < newLetter.length; i++){
newLetter[i] = Letter[letters.length - 1 - i];
}
letters = newLetter;
for(int i = 0; i < letters.size(); i++){
System.out.println(letters[i]);
}
//(2)首尾互换
for(int i = 0; i < lettes.length / 2; i++){
char temp = letters[i];
letters[i] = letters[letters.length - 1 - i];
letters[letters.length - 1 - i] = temp;
}
}
}
/*
*数组复制
*/
class test05_07{
public static void main(String[] args){
//(1)复制一个和原来一样的数组,长度和元素
int[] arr = {1, 2, 3, 4};
int[] newArr = new int[arr.length];
for(int i = 0; i < newArr.length; i++){
newArr[i] = arr[i];
}
//(2)赋值一个比原来数组短的(截取)
int[] newArr = new int[end - start + 1];
for(int i = 0; i < newArr.length; i++){
newArr[i] = arr[start + i];
}
//(3)复制一个比原来常的
int[] newAR = new int[arr.length * 2];
for(int i = 0; i < arr.length; i++){
newArr[i] = arr[i];
}
//(4)复制一个新数组,新数组的长度有键盘输入,长度不定
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("请输入新数组的长度:");
int len = input.nextInt();
int[] newArr = new int[len];
for(int i = 0; i < arr.length && i < newArr.length; i++){
newArr[i] = arr[i]
}
}
}
|