day05_java数组的操作
来源:互联网 发布:淘宝樊小林捕鼠 编辑:程序博客网 时间:2024/06/05 08:39
数组的操作:
练习1:得到数组是最大值
我原来想的是使用这种方式
Int[] arr = {3,4,54,9}
For(int i = 0 ;i<arr.length;i++)
{
If(arrr[i]>arr[i+1])
{
}
}
其实上面这种是不正确的是会出错下标越界的,现在数组里面有4个元素,如果你取第三的一个和第四的一个比较就会出错,那么最后一个下标就会是4,总共才三个也
正确的解法
/*
获取数组中的最大值。
思路:
1,需要进行比较。并定义变量记录住每次比较后较大的值。
2,对数组中的元素进行遍历取出,和变量中记录的元素进行比较。
如果遍历到的元素大于变量中记录的元素,就用变量记录住该大的值。
3,遍历结果,该变量记录就是最大值。
定义一个功能来是实现。
明确一,结果。
是数组中的元素。int .
明确二,未知内容。
数组.
*/
publicstatic int getMax(int[] arr)
{
//定义变量记录较大的值。
int maxElement = arr[0];//初始化为数组中的任意一个元素。
for(int x=1; x<arr.length; x++)
{
if(arr[x]>maxElement)
maxElement = arr[x];
}
return maxElement;
}
publicstatic int getMax_2(int[] arr)
{
//定义变量记录较大的值。
int maxIndex = 0;//初始化为数组中任意一个角标。
for(int x=1; x<arr.length; x++)
{
if(arr[x]>arr[maxIndex])
maxIndex = x;
}
return arr[maxIndex];
}
排序:
选择排序
基本思想就是拿一个元素去和后面的所有元素进行比较,一次选出一个元素出来
/*
选择排序。
*/
publicstatic void selectSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(inty=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
swap(arr,x,y);
/*
inttemp = arr[x];
arr[x]= arr[y];
arr[y]= temp;
*/
}
}
}
}
冒泡排序
冒泡是相邻两个进行比较
上面这种一般面试时会考到,下面java中自带有排序的功能是Arrays.sort(arr)
排序位置置换代码提取
swap(arr,y,y+1);
/*
inttemp = arr[y];
arr[y]= arr[y+1];
arr[y+1]= temp;
*/
public static void swap(int[] arr,int a,intb)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
排序的性能问题,现在我们排序不对进行两个交换了,而是记录住最小值的下标和值,然后最后再进行交换,相当于一次外层循环只交换一次
数组-常见功能-查找
/*
数组常见功能:查找。
*/
publicstatic int getIndex(int[] arr,int key)
{
for(int x=0; x<arr.length; x++)
{
if(arr[x]==key)
return x;
}
return -1;
}
数组-常见功能-折半查找)
/*
二分查找法。
*/
/*
面试题:
给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,
那么个元素的存储的角标为如何获取。
{13,15,19,28,33,45,78,106};
*/
记住一点:只要是数组有序并且涉及到查找的,首先想到折半查找
其实啊,java给我们提供有一个折半查找的方法
int[] arr = {13,15,19,28,33,45,78,106};
int index1 = Arrays.binarySearch(arr,5);//如果存在返回的具体的角标位置,不存在返回的是 -插入点-1
System.out.println("index1="+index1);
上面讲的是数组的一些常用操作,现在我们把数组进行在实际开发中可能用到的,进行应用
/*
获取一个整数的16进制表现形式。
*/
在这个项目是数据一多,就先存储起来,在进行操作,
16进制的转换查看arrayTest2
下面讲解其他进行的转换比如10进制转换为2,8,16进制这些 ArrayText3.java
查找表法练习
ArrayTest4.java,就是星期几的应用
- day05_java数组的操作
- day05_Java语言基础
- 数组的操作--二维数组
- ams32 的数组操作
- 指针数组的操作
- js数组的操作
- js数组的操作
- 数组的相关操作
- JS的数组操作
- 数组的操作
- 数组的操作
- js数组的操作
- PHP数组的操作
- 数组的常用操作
- js数组的操作
- 神奇的数组操作
- 数组的参数操作
- js数组的操作
- 游戏中时间管理器
- C++标准库---transform()
- android AR项目总结
- Android判断当前Service是否是重启的Servcie
- 重构.改善既有代码的设计
- day05_java数组的操作
- 第一天java
- Java中类的构造器
- js中的拖拽——两种
- canvas.save() canvas.restore() 作用
- 关于字符编码某些事
- 【10】启动 Integration Service 服务时报错
- 九度OJ—题目1088:剩下的树
- tomcat系列之整体结构