JAVA | 面向对象 | 数组的应用

  1. 数组的声明与创建:
//声明
int[] a;
int a[];
//此时在栈空间开辟变量名的存储空间

//创建
int[] a= new int[10];
double b[]= {1.0,2.0,3.0}  //直接指定初值
//此时在堆内存开辟空间,并将地址传给了栈空间内变量名的空间

2.类也可作为数据类型

package text;



public class TextArrays {

	public static void main(String[] args) {
		Man m[] =new Man[3];
		m[0]=new Man(1,2);
		m[1]=new Man(2,3);
	}


}

class Man				//无()
{
	private int age;
	private int id;
	Man(int age,int id)
	{
		this.age=age;
		this.id=id;
	}
}

 由于class Man的修饰符是default,可以被 同一个包中的所有类引用.它在void main()函数的前后都无所谓

 

3.二分查找

关键是键盘输入的这两句:

//声明:
BufferedReader keyin= new BufferedReader(new InputStreamReader(System.in));


c1=keyin.readLine();			//等价于cin>>c1;
search=Integer.parseInt(c1);	//取出字符串转换成整形

 

 

package text;

import java.io.*;

class  Binsearch
{
	int  binarysearch(int[] a,int s)
	{
		int low=0;
		int high=a.length-1;
		int mid=(low+high)/2;
		while(low<=high&&a[mid]!=s) 
		{
			if(s>a[mid])
				low=mid+1;
			else
				high=mid-1;
			mid=(high+low)/2;
		}
		if(low>high) {mid=-1;}//表示不存在
		return mid;	

	}
}

public class TextArrays 
{
	public static void main(String[] args) throws IOException   //表示此方法有抛出IOException异常的可能性
	{
		BufferedReader keyin= new BufferedReader(new InputStreamReader(System.in));
		int i, search,mid;
		String c1;
		int arr[]= {2,4,7,18,25,34,56,68,89};
		System.out.println("打印原始数据");
		for(i=0;i<arr.length;i++) {System.out.print(arr[i]+"	");}
		System.out.println("\n");
		System.out.println("输入要查找的整数");
		
		c1=keyin.readLine();			//等价于cin>>c1;
		search=Integer.parseInt(c1);	//取出字符串转换成整形
		
		Binsearch b1=new Binsearch();
		mid=b1.binarysearch(arr, search);
		if(mid==-1) {System.out.println("没找到");}
		else
		{System.out.println("要查找的整数的下标是:"+mid);}
	}

}

3.数组元素做实参

在交换两个元素时发现方法中可以交换元素,main()中就是不行.

package text;

public class TextPassing 
{

	public static void main(String[] args)
	{
		String[] s=new String[2];
		s[0]="张三";
		s[1]="李四";
		
		
		
		System.out.println("数组初始态");
		for(int i=0;i<s.length;i++)
		{
			System.out.println(s[i]);
		}
		System.out.println();

		Exchange ex=new Exchange();
		ex.exchanges(s[0], s[1]);
		System.out.println("main()中的元素未交换:");
		System.out.println(s[0]);
		System.out.println(s[1]);	//swap方法中参数改变了,main()不改变
		System.out.println();
		
	}	
		
		
}
class Exchange
{
	void exchanges(String a,String b)
	{
		String temp=a;
		a=b;
		b=temp;	
		System.out.println("swap()中的元素可交换");
		System.out.println(a);
		System.out.println(b);	//swap方法中参数改变了,main()不改变
	}
	
}

控制台结果如下:
数组初始态
张三
李四

swap()中的元素可交换
李四
张三
main()中的元素未交换:
张三
李四

 

 

posted @ 2019-06-27 09:17  心碎人俱乐部  阅读(9)  评论(0)    收藏  举报