------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
* 数组概念:同一种类型数据的集合,其实,数组就是一个容器.
* 好处:可以自动给数组的元素从0开始编号,方便操作这些元素.
* 格式1:元素类型[] 素组名 = new 元素类型[元素个数或数组长度]
* int [] arr = new int[5];
* 格式2:元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3,....元素n};
* int[] arr = new int[]{3,5,7,9,0};
* 或者int[] arr = {1,2,3,4,5,6}
* 内存划分:1.寄存器 2.本地方法区 3.方法区
* 4.栈内存 用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放.
* 5.堆内存 数组和对象,通过new建立的实例都存放在堆内存中.
* */
public class ShuZu {
public static void main(String[] args) {
int[] arrays = {23,34,15,64,678,342,533,234,2,9,-999};
printArrays(arrays);
xuanZe(arrays);
xuanZeJiaoBiao(arrays);
bubble(arrays);
Arrays.sort(arrays);
printArrays(arrays);
arrayDemo(arrays);
getMax(arrays);
}
public static void arrayDemo(int[] arr){
//int[] arr = new int[]{1,2,3,4,5};
// System.out.println(arr);//[I@170a6001
//[I 表示int类型的数组,@后面是该素组的初始地址哈希值
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void getMax(int[] arrays){
int max = 0;
for (int i = 0; i < arrays.length; i++) {
max = arrays[i] > max ? arrays[i]:max;
}
System.out.println(max);
}
//排序问题:
//选择排序:用第一个元素依次和后面的元素做比较,确定第一位最小,然后拿第二个和后面的依次比较
//采用选择排序--基本方法
public static void xuanZe(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1;y < arr.length; y++) {
if(arr[x]>arr[y]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
//遍历方法
public static void printArrays(int[] array){
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if( i < array.length-1){
System.out.print(array[i]+",");
} else {
System.out.println(array[i]+"]");
}
}
}
//选择排序之角标记录法
public static void xuanZeJiaoBiao(int[] arrays){
for (int i = 0; i < arrays.length-1; i++) {
int index = i;
int min = arrays[i];
for(int j = i+1 ; j<arrays.length;j++){
if(arrays[j]<min){
min = arrays[j];//获取到本循环数组最小值min
index = j;//本循环结束后获取到整个数组最小值的索引j
}
if(i != index){
replace(arrays,i,index);
}
}
}
}
//替换arrays[i]
public static void replace(int[] arrays,int i,int index){
int temp = arrays[i];
arrays[i] = arrays[index];
arrays[index] = temp;
}
//冒泡排序:第一轮:从第一个元素到倒数第二个元素依次向右比较,把最大数挪到最右边.
// 第二轮:从第二个元素到倒数第三个元素依次向右比较,把第二大数挪到倒数第二.
public static void bubble(int[] arr){
for (int j = 0; j < arr.length-1; j++) {
for (int i = 0; i < arr.length-j-1; i++) {
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
}
}
程序运行的结果为:
[23,34,15,64,678,342,533,234,2,9,-999]
[-999,2,9,15,23,34,64,234,342,533,678]
-999
2
9
15
23
34
64
234
342
533
678
678
For循环嵌套练习
public class ForForTest {
public static void main(String[] args) {
method_1();
method_2();
method_3();
method_4();
method_5();
method_6();
method_7();
}
//打印矩形
public static void method_1(){
for(int i = 0 ;i<5;i++){
for(int j = 0; j<5;j++){
System.out.print("*");
}
System.out.println();
}
}
//打印倒直角三角形1
public static void method_2(){
for(int i = 0 ;i<5;i++){
for(int j = 0; j<5-i;j++){
System.out.print("*");
}
System.out.println();
}
}
//打印倒直角三角形2
public static void method_3(){
for(int i = 0 ;i<5;i++){
for(int j = i; j<5;j++){
System.out.print("*");
}
System.out.println();
}
}
//打印正直角三角形2
public static void method_4(){
for(int i = 0 ;i<5;i++){
for(int j = 0; j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
//打印倒三角数字1
public static void method_5(){
for(int i = 0 ;i<5;i++){
for(int j = 5; j>i;j--){
System.out.print(j);
}
System.out.println();
}
}
//打印倒三角数字2
public static void method_6(){
for(int i = 0 ;i<5;i++){
for(int j = 0; j<=i;j++){
System.out.print(i+1);
}
System.out.println();
}
}
//打印等腰三角形
public static void method_7(){
for (int i = 0; i < 5; i++) {
for(int k = 0; k < i; k++){
System.out.print(" ");
}
for (int j = i; j < 5; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
输出效果:
*****
*****
*****
*****
*****
*****
****
***
**
*
*****
****
***
**
*
*
**
***
****
*****
54321
5432
543
54
5
1
22
333
4444
55555
* * * * *
* * * *
* * *
* *
*