Java数组练习题小结

//2015/07/07
//Java数组小小练习题
/*
3. 写一个函数,计算一个整数数组的平均值
4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标;如果不存在,则输出-1。
5. 给定一个数组,输出数组中的最大值和最小值
6. *给定一个数组,把这个数组中所有元素顺序进行颠倒。
7. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用冒泡排序对其按照从小到大的顺序排序,然后输出结果。
8. *使用第二种算法对数组进行排序
注:每一题都被函数封装起来了
*/
package Chp5;

public class ArrayTest {
	//Three 计算数组的平均值
	public void Average(int[] array)
	{
		System.out.println("第3题");
		int len = array.length;
		int average = 0;
		int sum = 0;
		for(int i = 0;i<len;i++)
		{
			sum+=array[i];
		}
		average = sum/len;
		System.out.println("数组的平均值为:"+average);
	}

	//第四题:自定义一个整数数组a,读入一个整数n
	public void IsExit(int[] array,int num)
	{
		System.out.println("第4题");
		int len = array.length;
		boolean bl = false;
		for(int i = 0;i<len;i++)
		{
			if(array[i] == num)
			{
				System.out.println("该数存在于数组中,下标为:"+i);
				bl = true;
			}
		}
		if(bl == false)
		{
			System.out.println(-1);
		}
	}

	//5题:求数组中的最大值和最小值
	public void GetMaxMin(int[] array)
	{
		System.out.println("第5题");
		int len = array.length;
		int temp;
		for(int i = 0;i<len;i++)
		{
			for(int j = 0;j<len-i-1;j++)
			{
				if(array[j]>array[j+1])
				{
					temp = array[j];
					array[j] = array[j+1];
					array[j+1] = temp;
				}
			}
		}

		System.out.println("数组最大值为:"+array[len-1]);
		System.out.println("数组最小值为:"+array[0]);

	}

	//第6题:给定一个数组,把这个数组中所有元素顺序进行颠倒。
	public void UpDownLocation(int[] array)
	{
		System.out.println("第6题");
		int len = array.length;
		int temp = 0;
		for(int i = 0;i<len;i++)
		{
			temp = array[len-1];
			array[len-1] = array[i];
			array[i] = temp;
			len--;
		}
	}

	///////////////////////////
	public void PrintArray(int[] array)
	{
		int len = array.length;
		for(int i = 0;i<len;i++)
		{
			System.out.print(array[i]+"  ");
		}
		System.out.println();
	}

	///////////////////////////

	//第7题:按照从小到大的顺序排序,然后输出结果
	public void BubbleSort(int[] array)
	{
		System.out.println("第7题");
		int len = array.length;
		int temp;
        for(int i = 0;i<len;i++)
        {
            for(int j = 0;j<len-i-1;j++)
            {
                if(array[j]>array[j+1])
                {
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
	}

	//第8题:用第二种算法对数组进行排序
	public void MyChoiceSort(int array[])
    {
		System.out.println("第8题");
		int len = array.length;
        int temp;
        for(int i = 0;i<len;i++)
        {
            for(int j = i+1;j<len;j++)
            {
                if(array[i]>array[j])
                {
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
    }

	public static void main(String[] args) {
		ArrayTest Myarray = new ArrayTest();
		////
		int[] array ={8,4,6,2,2,6,4,8};
		Myarray.Average(array);
		////
		Myarray.IsExit(array, 5);
		///
		Myarray.GetMaxMin(array);
		///
		Myarray.UpDownLocation(array);
		Myarray.PrintArray(array);
		///
		Myarray.BubbleSort(array);
		Myarray.PrintArray(array);
		///
		Myarray.MyChoiceSort(array);
		Myarray.PrintArray(array);
	}
}

  

时间: 2024-10-27 10:57:30

Java数组练习题小结的相关文章

java集合框架小结(进阶版)之HashMap篇

基本概念: Hash(哈希):hash一般也译作“散列”.事实上,就是一个函数,用于直接定址.将数据元素的关键字key作为变量,通过哈希函数,计算生成该元素的存储地址. 冲突:函数是可以多对一的.即:多个自变量可以映射到同一函数值.一般而言,不同的key的hash值是不同的.在往hash表中映射的时候,不同的hash值可能映射到同一存储地址,这种情况被称为冲突. 解决冲突的方法: 1. 链表法:将冲突的各个元素用一个一维数组来维护.(java源码实现) 2. 开发寻址法:具体的有线性探测法.二次

JAVA基础—泛型小结

概念: 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引入泛型的好处是安全简单. 泛型的常用字符代表意思: ? 表示不确定的java类型. T  表示java类型. K V 分别代表java键值中的Key Value. E 代表Element. 下面转载于cnblog上一个写的很好的例子 真的很好,我写了半天,当看到他这个后,立即删除~ 普通泛型

java集合框架小结(初级版)

今天大概的整理了一下java集合框架,在这里做一个小结,方便以后查阅,本博文主要参考资料为<java编程思想第四版>第11章——持有对象以及JAVA 1.6 API文档.并没有研究更深入的第17章<容器深入研究>.大概介绍了集合框架中几个比较常用的集合类. 以下为正文. 首先来看一张图,不太会用visio,画的可能不太好看 图中将接口.抽象类.实现类.淘汰类(圆角矩形)进行标注.有直线连接的类(或接口)表示是子类关系或者实现关系 由图示可以看出,集合类主要有两个集合接口: 1.Co

java并发包小结(一)

java.util.concurrent 包含许多线程安全.高性能的并发构建块.换句话讲,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作.通过提供一组可靠的.高性能并发构建块,开发人员可以提高并发类的线程安全.可伸缩性.性能.可读性和可靠性. JDK 5.0 中的并发改进可以分为三组:    1. JVM 级别更改.大多数现代处理器对并发对某一硬件级别提供支持,通常以 compare-and-swap (CAS)指令形式.C

javascript jquery数组操作小结

----------------------------------------------------------定义数组---------------------------------------------------------- $(function(){ var aArray = {};//定义一个数组 aArray['name'] = "张三"; aArray['sex'] = "男"; aArray['mail'] = "[email p

深入理解 Java 数组

目录   1. 简介  2. 声明数组  3. 创建数组  4. 访问数组  5. 数组的引用  6. 泛型和数组  7. 多维数组  8. Arrays 类  9. 小结  10. 参考资料 ?? 本文已归档到:「javacore」 ?? 本文中的示例代码已归档到:「javacore」 1. 简介 1.1. 数组的特性 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同.几乎所有程序设计语言都支持数组. 数组代表一系列对象或者基本数据类型,所有相同的类型

Java 数组学习笔记

数组的简单认识 简单理解java数组,就是可以创建并组装它们,通过使用整型索引值访问它们的元素,并且它们的尺寸不能改变,这里的它们就是数组. 数组的特殊性 在java中有很多方式去持有对象,那么数组的与众不同点在哪里? 数组与其他种类的容器区别有三个方面:效率.类型和保存基本类型的能力. 在java中,数组是一种效率最高的存储和随机访问对象引用序列的方式.数组就是一个简单的线性序列,这使得元素访问非常迅速.但是为之付出的代价就是数组对象的大小被固定,并且在其生命周期中不可改变. 在泛型之前,其他

Java数组与内存控制

一.Java数组初始化 Java数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java数组使用之前必须先对数组对象进行初始化,所谓初始化,就是为数组的所有元素分配内存空间,并为每个数组元素指定初始值.(文章来源于李刚老师的<突破java程序员的16课>) 1:基本类型数组的两种初始化方式 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度. 动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值. 不要同时使用静态初始化和动态初始化,也就是

JAVA数组的定义及用法

数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素. 1. 一维数组 1.1 一维数组的定义 type arrayName[]; type[] arrayName; 当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量. 另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种开发语言来说,另外一种形式可能更直观,由于这里定义的仅仅是个变量而已,系统