数组
变量只能存储一个值,数组可以存储多个值
没有字符串类型:本身就没有字符串数据类型,因为字符串数据类型长度不确定,没有办法制定数据类型大小(还有一点是字符串是一个类)。
Java没有指针但却有指针的理论:C语言的字符串采用的是指针制作? 你赋值一串字符串,它会询问这个字符串有多长就申请多少个char类型连续内存?
为什么需要内存连续呢,因为指针变量指向的是第一片内存地址,它要按顺序向下找
public class T6 {
public static void main(String[] args) {
int a[] = {15, 10, 1};
int b[] = new int[3];
b[0]=a[0];
System.out.println(b[0]);//这里用的是引用传递,传的是值的地址
}
}
数组介绍:数组前身就是指针控制,申请连续的内存地址,通过地址控制里面存储的数据,连续的内存地址控制。
public class T6 {
public static void main(String[] args) {
int[] i;//这里只是声明这是一个数组而已
int[] i=new int[5];//只是申请了数组,定制了长度
int[] i={12,3,4,5,76,7,8};//申请了一个int类型的数组,长度由初始值个数决定
int[] i=new int[]{12312,123,1,23,123,12};//申请了一个int类型的数组,长度由初始值个数决定,这个感觉是没啥卵用型
}
}
数组的访问:
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int[] nums=new int[input.nextInt()];
for(int i=0;i<nums.length;i++){
nums[i]=input.nextInt();//通过控制台决定数组长度,并且通过循环选择下标,并给下标赋值
}
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}
因为变量指向的是第一片内存地址,没有必要向下移动(因为零代表没有,代表第一个)
public class T6 {
public static void main(String[] args) {//取值实验
int i[]={15,13,35,64,65,48};
for (int j = 0; j <i.length ; j++) {
System.out.print(i[j]+"\t");
}
}
}
import java.util.Scanner;
public class T6 {
public static void main(String[] args) {//取值实验
int i[] = new int[3];
Scanner input = new Scanner(System.in);
for (int j = 0; j <i.length ; j++) {//这里是赋值
System.out.println("请您输入数字");
i[j]=input.nextInt();
}
for (int j = 0; j <i.length ; j++) {
System.out.print(i[j]+"\t");//有赋值那肯定得有取值
}
}
}
Arrays 数组操作类:sort(基本数据类型数组都可以找它排序 ,toString(数组变量) 把数组打印出来
import java.util.Arrays;
public class T6 {
public static void main(String[] args) {//取值实验
int i[] = {15, 20, 6};
Arrays.sort(i);//这里是排序
for (int j = 0; j <i.length ; j++) {
System.out.println(i[j]);//这里是取值
}
System.out.println(Arrays.toString(i));//也可以这样取值
}
}
数组引用:引用? 就是指针的理论 指向别人的地址
除了基本数据类 其他的交换都是内存地址
public class T6 {
public static void main(String[] args) {
int i[] = {15, 36, 56, 48, 21};
int a = (int) (Math.random() * i.length);//随机拿出一个下标
System.out.println(i[a]);
}
}
二维数组:
public class T6 {
public static void main(String[] args) {
int b[][] = {{}, {}};//声明二维数组格式
int a[][] = {{1, 5, 354, 16, 1}, {15, 645, 13, 354, 1}, {15, 64, 21, 1}, {35, 15, 32, 5, 2}};
}
}
二维数组排序
import java.util.Arrays;
public class T6 {//二维数组排序例题
public static void main(String[] args) {
int b[];
int a[][] = {{1, 5, 354, 16, 1}, {15, 645, 13, 354, 1}, {15, 64, 21, 1}, {35, 15, 32, 5, 2}};
int length = 0;//定义一个变量计算数组所需要的下标长度
for (int i = 0; i < a.length; i++) {
length += a[i].length;
}
b = new int[length];//决定一维数组的长度
int index = 0;//声明下标从零开始
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
b[index++] = a[i][j];//将二维数组的值赋值给一维数组
}
}
Arrays.sort(b);//将二维数组赋值给的一维数组的值,进行排序。
length=0;//在这声明从零开始,下标
for (int[] num : a) {
for (int i = 0; i <num.length ; i++) {
num[i]=b[length++];//将排序好的一维数组值,赋值给二维数组
}
}
for (int i = 0; i < a.length; i++) {
for (int i1 : a[i]) {
System.out.println(i1);
}
}
}
}
import java.util.Scanner;
public class Test9 {//一个用循环决定下标数的值的实验
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] select = new int[100];
int index = 0;//先控制下标从零开始
while (true) {
System.out.println("1.葡萄");
System.out.println("2.香蕉");
System.out.println("3.黄瓜");
System.out.println("4.苦瓜");
System.out.println("5.退出");
System.out.print("请选择:");
int s = input.nextInt();
if (s == 5) {
break;
}
select[index++] = s;//这里选择数字进行累计,并赋值给一维数组
}
System.out.println("您选择的是:");
for (int i = 0; i < select.length; i++) {
if (select[i] == 0) {
break;
}
if (select[i] == 1) {
System.out.println("葡萄");
} else if (select[i] == 2) {
System.out.println("香蕉");
} else if (select[i] == 3) {
System.out.println("黄瓜");
} else if (select[i] == 4) {
System.out.println("苦瓜");
}
}
}
}
public class T6 {//二维数组随机数实验
public static void main(String[] args) {
int a[][] = {{1, 54, 56, 54}, {485, 354, 321, 546, 1}, {5, 464, 8, 243, 44, 5}};
int i = (int) (Math.random() * a.length);
int b = (int) (Math.random() * a[i].length);
System.out.println(a[i][b]);
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的求职之路
01 简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头offer 搜狗,2面,悲剧 腾讯,1面,悲剧 布丁移动,3面,搞定 涂鸦游戏,3面,搞定 友盟,3面->CEO面,搞定 雅虎,4面->终面,搞定 微策略,2面,悲剧 人民搜索,3面->终面,搞定 人人,2面+终面+Special面,搞定 Google,7面,搞定 求职经历分为定位、准备、简历、笔试和面试这五个部分,大家挑感兴趣的看就成。 我的求职经历适用但不限于码农,不适用与企事业单位(据说是完全不同的考察标准和流程)。废话比较多,大家耐心忍受,有什么问题可以跟帖提问。 02 定位 教育经历:本科在大连某工科院校,由于GPA比较惨烈+挂科,所以没保成研,毕业后修了一年英语双学位,然后到帝都计算机职业教育学院接受再教育。 技术能力:属于半码农半产品的类型,代码编的过去(搞过compiler),也有一些拿的出手的产品(几十w的用户量),一句话描述:几十w代码+几十w用户的Co...
-
下一篇
Nodejs中的this详解
以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的。 1、全局中的this默认是一个空对象。并且在全局中this与global对象没有任何的关系:如下 console.log(this); {} this.num = 10; console.log(this.num); 10 console.log(global.num); undefined 2、在函数中的this function fn(){ this.num = 10; } fn(); console.log(this); {} console.log(this.num); undefined console.log(global.num); 10 在函数中this指向的是global对象,和全局中的this不是同一个对象,简单来说,你在函数中通过this定义的变量就是相当于给global添加了一个属性,此时与全局中的this已经没有关系了。 如果不相信,看下面这段代码可以证明。 function fn(){ functi...
相关文章
文章评论
共有0条评论来说两句吧...