开篇废话
最近有几天没有写总结了,没写的原因有那么几个,但主要的还是自己略微有些懒惰,最近看了有一些书,经历了一些事,觉得自己还是一个蛮幸福的人,可以干自己想干的事。父母又很开明,对我干什么都很支持,再此感谢他们对我的信任吧。这几天在做画图板,做的很纠结,本来要做一个画图板的总结,由于一些原因耽误了,不过没关系。有时间还是要把画图板那个完整版做个总结与大家分享。Where最近的一点点感悟在这个版块与大家分享,最近周围有朋友总是各种牢骚+抱怨,where觉得很没必要。生活本来就是跌宕起伏,一帆风顺属于童话。我们没权利要求生活事事顺意,但我们可以要求自己事事尽力。试着每天用一个幸福的心态作开始,慢慢的我们会发现一切没那么糟。试着给生活一缕微笑,或许它会回馈给你别样的风景。好了“废话”的最后还是希望大家可以微笑面对生活吧。
本次总结提纲:
<!--[if !supportLists]-->1.
<!--[endif]-->数组的理解
<!--[if !supportLists]-->2.
<!--[endif]-->一维数组的理解和使用
<!--[if !supportLists]-->3.
<!--[endif]-->二维数组的理解和使用
<!--[if !supportLists]-->4.
<!--[endif]-->数组的排序(这部分比较有意思)
<!--[if !supportLists]-->一.
<!--[endif]-->数组的理解
<!--[if !supportLists]-->1)<!--[endif]-->数组是具有相同的基本数据类型的变量或对象的集合;
<!--[if !supportLists]-->2)<!--[endif]-->数组元素既可以是基本数据类型也可以是复合数据类型因此数组的
元素可以是数组,我们一会要说的二维数组可以理解为元素为数组的一维数组(听起来较拗口,多读几遍也许会习惯);
补充:JAVA中基本数据类型包括8种:byte、int、short、long、char、float、double、boolean。
JAVA中复合数据类型有两种:数组、类或接口。
<!--[if !supportLists]-->3)<!--[endif]-->数组这种复合数据类型与我们以前提到过的基本数据类型的最大区别是对数组的操作是通过引用其地址来实现的。而基本数据类型是通过值来操作。
二.一维数组的理解和使用
很多书上讲数组往往把数组的声明和初始化混在一起讲,包括我先在学习用的书也是这样,对于这点我表示不怎么喜欢。因为它本质是两个过程,下面我们就分开看看这两个过程。声明一个数组时,只能得到存放这个数组的地址变量,并没有为他的元素分配储存空间数组还不能直接使用。而初始化就是为数组分配内存空间的过程。
<!--[if !supportLists]-->1)<!--[endif]-->一位数组的声明格式有两种:
数据类型 数据名[];
数据类型[] 数据名;
<!--[if !supportLists]-->2)<!--[endif]-->一维数组的初始化也是有两种方法:
直接初始化:
数据类型 数据名[] = {值1,值2,……值n}
例:int a[]= {1,2,3}
动态初始化:
数据类型 数组名[] =new 数据类型[数组长度];
或
数据类型 数组名[];
数组名= new数据类型[数组长度];
(如果用动态初始化建议用地一种)
注意点:1.数组下标编号从0开始
2.两种初始化方式不可随意组合比如:
Int a[];
a={1,2,3,4,5,};
这个就不对了,下午做二维数组的排序时where就犯了个类似的脑残错误找了半天。
<!--[if !supportLists]-->三.
<!--[endif]-->二维数组的理解和使用
二维数组可以理解为元素为一位数组的一位数组,同理N维数组可以理解成元素为N-1维数组的一维数组,当然可以有别的理解方式,但我这为什么都要最终把他们归结为一位数组,这里先卖个关子,一会儿在排序中会讲到。
1)二维数组的声明格式有两种:
数据类型 数据名[][];
数据类型[][] 数据名;
2) 维数组的初始化也是有两种方法:
直接初始化:
例:int a[][]={ {1,2}{3,3}};
动态初始化也分两种:这里直接上示例
<!--[if !supportLists]-->1.
<!--[endif]-->int a[][];
a =new int[2][3];
<!--[if !supportLists]-->2.
<!--[endif]-->int
a[][];
b = new int[2][];
b[0] =new
int[3];
b[1] =new
int[3];
注意:在JAVA中不要求多维数组的每一维长度相等,即我们平时所说的列长度,如二维数组的第二个[]的数不一定相同,这点与C语言不同;
<!--[if !supportLists]-->四.
<!--[endif]-->数组的排序
关于一维数组的排序:冒泡排序,选择排序,插入排序,希尔排序,快速排序等等吧,各种参考书都有我再讲也没意思,大家就自己研究一下,不难。下面分享一个也不难但是比较有意思的二维数组排序。
二维数组排序的思想是:创建一个一维数组存放二维数组的元素,然后对一位数组排序(我用的是冒泡排序),最后再依次输出二维数组。
有代码有真相:package exercise0731;
/**
* 二維數組
* @author where
*
*/
public class DimArray
{
public static void main(String[] args)
{
//創建一個二維數組對象
int[][] a =new int[5][5];
//對二維數組賦值
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
java.util.Random ran=new java.util.Random();
a[i][j] = ran.nextInt(10);
}
}
//打印二維數組
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
int[][] k=sort(a);
//打印二維數組
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
//排序
public static int[][] sort (int[][] x)
{
int[] b=new int[x.length*x[0].length];
for(int t=0;t<x.length;t++)
{
for(int i=0;i<x[t].length;i++)
{
b[i+t*5]=x[t][i];
}
}
for(int j=0;j<x.length*x[0].length;j++)
{
for(int k=j+1;k<x.length*x[0].length;k++)
{
if(b[j]>b[k])
{
int temp=b[j];
b[j] = b[k];
b[k] = temp;
}
}
}
for(int t=0;t<x.length;t++)
{
for(int i=0;i<x[t].length;i++)
{
x[t][i]= b[i+t*5];
}
}
return x;
}
}
分享到:
相关推荐
java基础知识总结(超级经典),非常适合新手入门,涉及各方面的内容。
写代码: 1,明确需求。...用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。
总结了java基础的架构,从JDK安装到反射的知识
初学者必看java基础知识大全(必看经典).pdf
JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷歌翻译,非人工翻译。准确性不能保证,请与英文版配合使用 ...
java基础---PPT讲稿,希望给能够学习者提供帮助,实现对java基础知识的掌握与理解,为后续学习做好铺垫
■Java语言基础知识 ■面向对象程序设计 ■接口与内部类 ■事件监听Qi模型 ■Swing图形用户界面程序设计 ■打包应用程序 ■异常处理 ■登录与调试 ■泛型程序设计 ■集合框架 ■多线程
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,...
《Java基础教程(第3版)》以通俗易懂的语言,循序渐进地向读者介绍了Java语言编程的基础知识。针对较难理解的问题,所列举的例子都是由简到繁,便于读者掌握Java编程技巧。在第3版中加大了面向对象的知识容量,补充...
全书共20章,分为4篇进行介绍,第1篇为基础篇,包括Java开发前奏、搭建Java开发环境、 扎实Java语言基本语法、掌握算法和流程控制、使用Eclipse开发工具、探秘面向对象程序设计、初探Java数组;第2篇为核心篇,包括...
是java的基础训练题
■Java语言基础知识 ■面向对象程序设计 ■接口与内部类 ■事件监听Qi模型 ■Swing图形用户界面程序设计 ■打包应用程序 ■异常处理 ■登录与调试 ■泛型程序设计 ■集合框架 ■多线程
JAVA2核心技术第1卷.基础知识7th
Servlet 2.4 API帮助文档 chm英文版 是本人根据sun官方j2eeri-1_4-doc-api制作而成!欢迎各位下载使用.如有任何意见和建议请联系我... Java Servlet Development Kit 2.4 DocumenTation by Cn.zwj186.chm
Java面向对象程序设计---课件PPT,希望给能够学习者提供帮助,实现对计算机Java基础知识的掌握与理解,为后续学习做好铺垫,实现Java知识的灵活运用
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
《Java语言程序设计:基础篇(原书第8版)》以示例讲解解决问题的技巧,提供大量的程序清单和相应的提示,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学的技术解决实际应用程序开发中遇到的问题。...
2017年阿里Java基础面试题文档 下载 这里面是作者2017年面试的文档,资料比较乱,大都是面试完以后自己搜集这方面知识了解的,内容比较多,可以看下
java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...