java入门到精通(05)

    /**
     * 数组是具有相同数据类型的一组数据的集合
     */
    //一维数组
    //一维数组实质上是一组相同类型数据的集合,但需要再程序中处理一组数据或者传递一组数据时,
    //可以使用这种类型的数组
    //创建一维数组
    数组元素类型 数组名字[];
    数组元素类型[]      数组名字;
    int arr[];
    String[] atr;
    //声明数组后,还不能访问他的任何元素,因为声明数组仅仅是给出呢数组名字和元素的数据类型,要想真正的使用数组
    //还要为器分配内存空间,且分配的内存空间必须知名数组的长度,分配内存空间的方式:
    数组名字 = new 数组元素类型[数组元素的个数]
    arr=new int[5];
    //需要注意的是,数组的下标是从0开始的
    //创建数组的同时分配空间
    数组的元素类型 数组名[]=new 数组元素类型[数组元素的个数]
    int num[]=new int[12];
    //初始化一维数组
    int arr[]=new int[] {1,2,3,4};//第一种初始化方法
    int arr2[]= {1,2,3,4};//第二种初始化方法
    //多维数组
    //二维数组常用来表示表.表中的信息以行和列的形式组织,第一个下标代表所在的行,第二个下标
    //元素表示所在的列
    //创建二维数组
    数组元素类型 数组名字[][];
    数组元素类型[][] 数组名字;
    int marry[][];
    //为每一维分配相同的内存
    marry=new int[2][3];
    //初始化
    byte arraybyte[][]= {{1,2},{3,4}};
    //数组的基本操作
//基本操作
遍历数组
数组的遍历一般使用for循环,一维数组单层循环,二层数组二层循环
当然,在遍历数组的时候foreach语句会更加简单
int arr={{},{}}
for(int arrs[]:arr){
    for (int arrss: arrs){
        //循环完成
    }
}
//填充替换数组元素
数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换
该方法通过重载的形式可完成对任意类型的数组元素的替换
fill() 方法有两种参数类型
fill(int  a[],int value)
a:要进行元素替换的数组
value:要存储数组中所有元素的值
例:
int arr[] =new int[5] //创建int型数组
Arrays.fill(arr,8)//使用8来进行填充arr数组
//替换制定范围内的元素
fill(int a[],int fromIndex,int toindex,int value)
a:要进行填充的数组
fromIndex:要使用指定值填充的第一个元素的索引(包括)
toindex:要使用指定值填充的的最后一个元素的索引(不包括)
value:要储存在数组中元素中的值
//对数组进行排序
通过Arrays类的静态方法sort()方法来实现对数组的排序,sort()方法提供了多种排序方式,可以对任意类型的数组进行排序
Arrays.sort(object)
object:指定进行排序的数组名称
/**
Java中的String类型数组的排序算法是根据字典编排顺序排序的,因此数字排在字母面前,大写字母排在小写字母前面
**/
//复制数组
Arrays类的copyOf()方法与copyOfRange()方法可以实行对数组的复制。copyOf()方法是复制数组至指定的长度,
copyOfRange()方法则将指定数组的指定长度复制到一个新的数组
1.copyOf()
copyOf(arr,int newLength)
arr:要进行复制的数组
newLength:int型常量,指复制后新数组的长度。
            如果:新的数组长度大于arr的长度,则多余的长度用0填充
            新的长度小于arr的长度,则从arr中截取新的长度
2.copyOfRange()
copyOfRange(arr,int formIndex,int toIndex)
arr:要进行复制的数组对象
formIndex:指定开始复制数组的索引位置,formIndex必须在0至整个整数的长度之间,新数组包括索引是formIndex的元素
toIndex:要复制范围的最后的索引位置,可大于数组arr的长度,新数组不包括索引toindex的元素
//数组查询
Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定数组,以获得指定对象,该方法返回要搜索元素的索引值。
binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要
1.binarySeach(object[] a,Object Key)
a:要搜索的数组
key:要搜索的值
如果key包含在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)
2.binarySearch(object[] a,int formIndex,int toIndex,Object key)
a:要进行索引的数组
fromindex:指定范围的开始处索引(包括)
toindex:指定范围的结束处索引(不包含)
key:要搜索的元素
如果key包含在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)
//冒泡排序
冒泡排序是常用的数组排序算法之一,它排序数组元素的过程总是将小数往前放,大数往后放,
类似水中旗袍往上升的动作,所以称为冒泡排序
//直接选择排序
直接选择排序是选择排序的一种,它的排序速度比冒泡排序快一点,也是常用的排序算法。
1.基本思想
选择排序的基本思想,是将制定排序位置与其他数组元素分别进行比较。如果满足条件就交换元素值,注意这里区别于冒泡排序,不是交换相邻元素,二十八满足条件的元素与指定的 排序位置进行交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,最后将整个数组都已经成为排序好的格式


//反转排序
反转排序就是以相反的顺序把原有的内容及进行重新排序,反转排序算法在程序开发中也经常用到
1。基本思想
反转排序的基本思想比较简单,也很好理解,其实现思路就是把数组的最后一个元素与第一个元素替换,倒数第二个元素与第二个元素进行替换,以此类推,知道把数组完全反转替换

原文地址:https://www.cnblogs.com/songdongdong6/p/9887890.html

时间: 2024-10-16 10:21:48

java入门到精通(05)的相关文章

Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can't find referenced pointcut XXX

一.问题描述及原因. 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX.一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配. org.springframework.beans.factory.BeanCreationException: Error creating bean with n

JAVA入门到精通-第94讲-山寨QQ项目8-好友在线提示

遇到的问题: 现在每登录一个人,后面的人是能看到前面的登录的人的: 但是,前面的人看不到后面的人登录: //后面每登录一个人,有责任去通知前面登录的人他已经上线了: 通知了完以后,需要更改好友在线的情况: //不让同一个账号反复登录 //如果 好友不在线,则不能聊天 ================================ [ManageQqChat.java] /** * 这是一个管理用户聊天界面的类 */ package com.qq.client.tools; import jav

Java入门到精通——调错篇之Eclipse No Java virtual machine was found after searching the following locations

一.错误现象. 在一次启动Eclipse的时候弹出了下面的错误 二.错误原因 原因是没有找到javaw.exe文件的路径. 三.解决方案 在eclipse根目录下找到eclipse.ini加入下面一句话 -vm D:\Java\jdk1.8.0_25\bin(jdk的bin目录路径)

Java入门到精通——调错篇之Eclipse Java compiler level dose not match the version of the installed Java project

一.错误现象. java项目显示红色,并且类中引用包中会报红色错误,在Eclipse下面显示下面错误提示如图: 二.错误原因. 通过字面意思一看就很明白java的版本不对. 三.解决办法. 3.1右键项目"Properties",在弹出的"Properties"窗口左侧. 3.2单击"Project Facets",打开"Project Facets"页面,更改java版本 对了大家最后别忘了点击Apply

Java入门到精通——基础篇String StringBuffer StringBuilder性能PK

一.概述 字符串的处理在java中我们经常要用到java提供了三个类来提供对字符串的操作,String,StringBuffer,StringBuilder String:固定长 StringBuffer:不固定长线程安全 Stringbuilder:不固定长线程不安全 二.性能PK 1.创建超大字符串. 代码: public class StringOne { public static void main(String[] args) { String str=""; String

Java入门到精通——开篇

本系列博客大体框架构思了一段时间了,本系列博客包含了对现有知识的总结也有对未来知识的展望. 本系列博客包括七大部分如下: 第一部分  Java基础应用 讲述JAVA的基础从以下几方面讲述:安装与配置.基本语法.面向对象.异常处理.数组.常用类.容器.IO.线程.网络等. 第二部分  Java高级应用 讲述Jvm优化.J2EE十三个规范等. 第三部分  Java工具应用 从三个方面讲述:开发工具.管理工具.代码质量控制工具 开发工具:Maven.Nexus.Jetty.Eclipse等. 管理工具

Java入门到精通——基础篇之static关键字

一.概述 static 关键字是声明静态变量,静态方法用的.static的含义是属于类且不属于类对象的变量和函数. 二.static的产生. 在创建对象的时候除非用new创建那个类的对象,否则实际上并没有获得任何对象只有当执行new来创建对象时数据存储空间才被分配,其方法才供外界调用.但是有两种情况上述方法时无法解决的 第一种只想为某特定域分配单一存储空间而不去考虑究竟要创建多少对象,甚至不需要创建任何对象. 第二种希望某个方法(变量)不予包含它的类的人很对象关联在一起.也就是没有创建对象,也能

Java入门到精通——基础篇之面向对象

一.概述. Java属于面向对象的一种语言,因为Java是面向对象的语言所以这个语言的诞生需要有五个基本特性: 1)万物皆为对象. 2)程序是对象的集合. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其他类型.每个对象都是某个类的一个实例. 5)某一特定类型的所有对象都可以接收同样的消息. Java中会有一些我们常用到的概念虽然总在用但是我们却不知道为什么会要有这些下面我就以一问一答的方式来给大家讲解. 二.一些面向对象的疑问. 2.1为什么要有访问控制的存在?它的意义是什

java入门到精通(03)

package ink.sdd.Java01; import org.junit.Test; public class Test0001 { //声明变量 @Test public void test01() { int age; //声明int型变量 char char1='r'; //声明char型变量并赋值 //变量名的明明规则: //1.变量名必须是一个有效的标识符 //2.变量名不能重复 //3.应该选择有意义的单词作为变量名 } //声明常量 @Test public void te