数组:相同数据类型的集合
数组的定义
数据类型[ ] 变量名 = new 数据类型[数组的长度]
数据类型 变量名[ ] = new 数据类型[数组的长度]
数组的常用操作
打印数组
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0; x<arr.length; x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
}
获取最大值
public static int getMax(int[] arr)
{
int max = arr[0];
for(int x=1; x<arr.length; x++)
{
if(arr[x]>max)
max = arr[x];
}
return max;
}
获取最小值
public static int getMin(int[] arr)
{
int min = 0;
for(int x=1; x<arr.length; x++)
{
if(arr[x]<arr[min])
min = x;
}
return arr[min];
}
数组的排序及查找
import java.util.Random;
import java.util.Scanner;
public class ZongHe2{
public static void main(String[] args) {
//在数组中随机打印10个数
int[] arr = new int[10];
//循环十次,随机选中十个数
for(int i = 0;i < arr.length;i ++){
Random random = new Random();
//将随机数放入数组中
arr[i] = random.nextInt(100);
}
//打印数组
for(int i = 0;i < arr.length;i ++){
System.out.print(arr[i]+" ");
}
System.out.println();
//冒泡排序
for(int i = 0;i < arr.length - 1;i ++){
for(int j = 0;j < arr.length - 1- i;j ++){
//数组的比较大小
if(arr[j] > arr[j+1]){
//调换数组的位置
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i < arr.length;i ++){
System.out.print(arr[i]+" ");
}
for (int i = 0; i < arr.length -1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if(arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j+1] = temp;
}
}
}
System.out.println();
//选择排序
for(int i = 0;i < arr.length - 1;i ++){
for(int j = i;j < arr.length - 1;j ++){
if(arr[i] > arr[j + 1]){
int temp = arr[i];
arr[i] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i < arr.length;i ++){
System.out.print(arr[i]+" ");
}
System.out.println();
//二分法查找
System.out.println("请输入你要查找的数");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
scanner.close();
int hi = arr.length;
int lo = 0;
if(num > arr[arr.length - 1] || num < arr[0]){
System.out.println("你查找的数超过数组的范围");
}else{
while(lo <= hi){
int mi = (hi + lo) / 2;
if(num < arr[mi]){
hi = mi - 1;
}else if(num > arr[mi]){
lo = mi + 1;
}else{
System.out.println("你查找的"+num+"在数组的第"+(mi+1)+"位");
return;
}
}
System.out.println("数字不存在");
}
}
}
数组的常用操作方法
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang3.ArrayUtils;
public class Test05 {
/**
* 数组的一些常用的方法
* @param args
*/
public static void main(String[] args) {
int[] arr = {12,54,23,56,67,98};
//数组的排序
Arrays.sort(arr);
//打印数组
for(int i = 0;i < arr.length;i ++){
System.out.print(arr[i]+" ");
}
//打印数组2
for(int a : arr){
System.out.print(a+" ");
}
//输出的是数组的对象的内存单元地址
System.out.println(arr);
//数组的输出
String arr2 = Arrays.toString(arr);
System.out.println(arr2);
//数组元素的反转
ArrayUtils.reverse(arr);
//System.out.println(Arrays.toString(arr));
for(int i = 0;i < arr.length;i ++){
System.out.print(arr[i]+" ");
}
System.out.println();
//检查一个数组是否包含某值
String[] arr1 = {"a","b","c"};
boolean a = Arrays.asList(arr1).contains("a");
System.out.println(a);
//数组的填充
Arrays.fill(arr,30);
System.out.println(Arrays.toString(arr));
//判断一个值在数组中的位置
int[] arr3 = {23,45,32,12,48};
Arrays.sort(arr3);
System.out.println(Arrays.binarySearch(arr3, 48));
//数组转化为list集合
String[] str = {"a","b","c","d"};
ArrayList<String> arraylist = new ArrayList<String>(Arrays.asList(str));
System.out.println(arraylist);
//数组转化为set集合
Set<String> set = new HashSet<String>(Arrays.asList(str));
System.out.println(set);
//连接两个数组
int[] a1 = {12,23,43};
int[] a2 = {56,89,32};
int[] combine = ArrayUtils.addAll(a2, a1);
for(int com : combine){
System.out.print(com+" ");
}
}
}