三:数组
一、概述
1. 数组的概念:相同数据类型元素的集合
2. 数组的作用:用来存储基本数据类型和引用数据类型的数据
二、常用操作
package com.binge.myblogsystem;
public class Test {
public static void main(String[] args) {
/**
* 1. 数组的初始化
*/
// 1.1 数组的静态初始化
int[] array1 = {1, 3, 5, 6, 7, 2, 4, 10};
// 1.2 数组的动态初始化
int[] array2 = new int[5];
array2[0] = 1;
array2[1] = 2;
array2[2] = 7;
array2[3] = 3;
array2[4] = 4;
/**
* 2. 数组的遍历
*/
// 2.1 for循环打印数组
for (int i = 0; i < array2.length; i++) {
System.out.print(array2[i]);
}
// 2.2 foreach打印数组
for (int i : array2) {
System.out.print(i);
}
/**
* 3. 数组排序
*/
// 3.1 冒泡排序
for (int i = 0; i < array2.length; i++) {
for (int j = i + 1; j < array2.length; j++) {
// 1. 比较相邻元素,将较大的数冒泡
if (array2[i] > array2[j]) {
// 2. 交换
int temp = array2[i];
array2[i] = array2[j];
array2[j] = temp;
}
}
}
for (int i : array2) {
System.out.println(i);
}
// 3.2 选择排序
for (int i = 0; i < array2.length; i++) {
int min = i;
for (int j = i; j < array2.length; j++) {
// 1. 找到最小的数
if (array2[j] < array2[min]) {
// 2. 将最小的数赋值给min
min = j;
}
}
// 3. 交换两个数的位置
int temp = array2[i];
array2[i] = array2[min];
array2[min] = temp;
}
for (int i : array2) {
System.out.println(i);
}
// 3.3 反转排序
for (int i = 0; i < array2.length / 2; i++) {
// 将第i位元素与array2.length-1-i位元素交换
int temp = array2[i];
array2[i] = array2[array2.length - 1 - i];
array2[array2.length - 1 - i] = temp;
}
for (int i : array2) {
System.out.println(i);
}
// 3.4 插入排序
for (int i = 0; i < array2.length; i++) {
int j = i;
int tmp = array2[i];
for (; j > 0 && tmp < array2[j - 1]; j--) {
// 1. 将大于待排序的数向后移
array2[j] = array2[j - 1];
}
// 2. 交换
array2[j] = tmp;
}
for (int i : array2) {
System.out.println(i);
}
}
}
三、Arrays工具类
import java.util.Arrays;标签:int,核心,System,数组,array2,print,JavaSE,out From: https://www.cnblogs.com/StarLemon/p/17745066.html
import java.util.List;
public class Test {
public static void main(String[] args) {
int[] array1 = {1, 3, 5, 2, 4};
int[] array2 = {3, 2};
// 1. 排序
Arrays.sort(array2);
for(int i :array2)
{
System.out.print(i);
}
// 2. 二分法查找
System.out.print(Arrays.binarySearch(array2,3));
// 3. 数组元素比较
System.out.println(Arrays.equals(array1,array2));
// 4. 数组元素填充
Arrays.fill(array2,1);
for(
int j :array2)
{
System.out.println(j);
}
/**
* aslist详解
* 1. 该方法适用于对象型数据的数组(String、Integer...)
* 2. 该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)
* 3. 该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新
* 4. 不支持add()、remove()、clear()等方法
*/
// 1、对象类型(String型)的数组数组使用asList(),正常
String[] strings = {"aa", "bb", "cc"};
List<String> stringList = Arrays.asList(strings);
System.out.print("1、String类型数组使用asList(),正常: ");
for(
String str :stringList)
{
System.out.print(str + " ");
}
System.out.println();
// 2、对象类型(Integer)的数组使用asList(),正常
Integer[] integers = new Integer[]{1, 2, 3};
List<Integer> integerList = Arrays.asList(integers);
System.out.print("2、对象类型的数组使用asList(),正常: ");
for(
int i :integerList)
{
System.out.print(i + " ");
}
System.out.println();
// 3、基本数据类型的数组使用asList(),出错
int[] ints = new int[]{1, 2, 3};
List intList = Arrays.asList(ints);
System.out.print("3、基本数据类型的数组使用asList(),出错(输出的是一个引用,把ints当成一个元素了):");
for(
Object o :intList)
{
System.out.print(o.toString());
}
System.out.println();
System.out.print(" "+"这样遍历才能正确输出:");
int[] ints1 = (int[]) intList.get(0);
for(
int i :ints1)
{
System.out.print(i + " ");
}
System.out.println();
// 4、当更新数组或者List,另一个将自动获得更新
System.out.print("4、当更新数组或者List,另一个将自动获得更新: ");
integerList.set(0,5);
for(
Object o :integerList)
{
System.out.print(o + " ");
}
for(
Object o :integers)
{
System.out.print(o + " ");
}
System.out.println();
}
}