一、对一个容器操作(数组)
1、 数组的初始化
数组的静态初始化
int[] arrays = {1,2,3,212,2,};
数组的动态初始化:
int[] arrays = new int [6];
2、数组的定位
int item = arrays[3];
int item2 = arrays[6];
会出现数组越界的情况
3、数组的替换
a
rrays[2] = 100;即把第三位替换为100
4、数组的求长
int length = arrays.length;
(length 为数组的属性,不用加括号)
5、数组遍历
for(int item : result){
System.out.print(item);
}
例:数组反转
① 在原有位置上做反转,不建立新数组
public class test {
public static void main(String[] args){
int[] arrays ={1,2,3,4,5,6};
int i = arrays.length/2;
for(int j=0;j<arrays.length/2;j++){
int item = arrays[j];
arrays[j] = arrays[arrays.length-j-1];
arrays[arrays.length-j-1] = item;
}
for(int a = 0;a<arrays.length;a++){
System.out.print(arrays[a]);
}
}
}
② 新建新的数组做反转
public class test {
public static void main(String[] args){
int[] arrays ={1,2,3,4,5,6};
int[] result = new int[arrays.length];
for(int i= 0;i<arrays.length;i++){
result[i] = arrays[arrays.length-1-i];
}
for(int a = 0;a<result.length;a++){
System.out.print(result[a]);
}
}
}
例:数组求和
public class test {
public static void main(String[] args){
int[] arrays ={1,2,3,4,5,6,7,8,9};
int sum = 0;
for(int item : arrays){
sum = sum+item;
}
System.out.print(sum);
}
}
例:求数值中的最大值
public class test {
public static void main(String[] args){
int[] arrays ={1,2,3,4,5,6,7,8,9};
int max = 0;
for(int item : arrays){
if(max<item){
max = item;
}
}
System.out.print(max);
}
}
例:求数组中最大值的角标
public class test {
public static void main(String[] args){
int[] arrays ={12,43,3,44,244,545,33,23};
int max = arrays[0];
int index = 0;
for(int i = 0;i<arrays.length;i++){
if(max<arrays[i]){
max = arrays[i];
index = i;
}
}
System.out.print(index);
}
}
二、排序:
1、 直接排序:
两个for循环嵌套;外层确定循环中需要替换的为,内层负责比较
例:
public class test {
public static void main(String[] args){
int[] arrays ={12,43,3,44,87,66,54,11,33,23};
for(int i=0;i<arrays.length;i++){
for(int j = i;j<arrays.length;j++){
if(arrays[i]<arrays[j]){
int item = arrays[j];
arrays[j] = arrays[i];
arrays[i] = item;
}
}
}
for(int item : arrays){
System.out.print(item+" ");
}
}
}
2、 选择排序:
例:
public class test {
public static void main(String[] args){
int[] arrays ={12,43,3,44,87,66,54,11,33,23};
for(int i=0;i<arrays.length;i++){
int max = arrays[i];
int index = i;
for(int j = i;j<arrays.length;j++){
if(max<arrays[j]){
max=arrays[j];
index = j;
}
}
max = arrays[i];
arrays[i] = arrays[index];
arrays[index] = max;
}
for(int item : arrays){
System.out.print(item+" ");
}
}
}
3、 冒泡排序
例:
public class test {
public static void main(String[] args){
int[] arrays ={12,43,3,44,87,66,54,11,33,23};
for(int i=0;i<arrays.length;i++){
for(int j = i;j<arrays.length-i-1;j++){
if(arrays[j]<arrays[j+1]){
int temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
}
}
for(int item : arrays){
System.out.print(item+" ");
}
}
}