数组的声明、遍历、排序

**

1. 数组的声明及初始化

**
一般数组的声明就两种

int[] arr;
int arr[];

下面是直接将声明和初始化一并实现

char[] arr = new char[10];
char[] arr = new char[] {};
char[] arr = {};
char[][] arr = new char[2][]

看User类的数组的两种赋值方法

User[] user = new User[3];
  user[0] = new User("jack",15);
  user[1] = new User("tom",19);
  user[2] = new User("alice",65);
User[] user = {
    new User("Jack",18),
    new User("Mike",91),
    new User("Tom",45)
  };

看一下User类的内容

class User{
 String name;
 int age;
 
 public User(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
}

**

2. 数组遍历

**

要求用至少4种方式遍历数组[23,45,12,8,78,100].
  1.
  int[] numbers = {23,45,12,8,78,100};
  for(int i=0;i<numbers.length;i++)
  {
   System.out.println(numbers[i]);
  }
  
  2.
  int[] numbers = {23,45,12,8,78,100};
  for(int i : numbers)
  {
   System.out.println(i);
  }
  
  3.字符串形式输出
  int[] numbers = {23,45,12,8,78,100};
  System.out.println(java.util.Arrays.toString(numbers));
  
  4.迭代器 
  迭代器比较特殊,在最前面必须加上这些包
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;  
*****************************************************
  List<Object> numbers = new ArrayList<>();
  numbers.add(23);
  numbers.add(45);
  numbers.add(12);
  numbers.add("8");
  numbers.add(78);
  numbers.add(100);
  Iterator iterator = numbers.iterator();
  while(iterator.hasNext()){
        System.out.print(iterator.next() +" ");
  }

int[] numbers = {23,45,12,8,78,100};
  System.out.println(java.util.Arrays.toString(numbers));
 

这里也可以改为,但是要导入包import java.util.Arrays;

int[] numbers = {23,45,12,8,78,100};
  System.out.println(Arrays.toString(numbers));
 

如果是多维数组(即数组的数组),则需要调用Arrays.deepToString方法

3. 数组排序

要求用3种方式对数组[23,45,12,8,78,100]进行排序
  1.用包排序
  import java.util.Arrays;
  
  int[] numbers = {23,45,12,8,78,100};
  Arrays.sort(numbers);
  for(int i:numbers)
  {
   System.out.println(i);
  }
  
  2.选择排序
  int[] numbers = {23,45,12,8,78,100};
  int temp = 0;
  for(int i = 0;i<numbers.length;i++)
  {
   for(int j=i+1;j<numbers.length;j++)
   {
    if(numbers[i]>numbers[j])
    {
     temp = numbers[i];
     numbers[i] = numbers[j];
     numbers[j] = temp;
    }
   }
  }
  for(int i:numbers)
  {
   System.out.println(i);
  }
  
  3.
  int[] numbers = {23,45,12,8,78,100};
  int temp;
     for(int i = 0; i<numbers.length; i++)
     {
      for (int j = numbers.length-1; j > i; j--) 
      {        
       if (numbers[j] < numbers[j - 1]) 
       {  //从后往前进行比较,小数往前,一轮之后最小数就在最前面了
        temp = numbers[j - 1];
        numbers[j - 1] = numbers[j];
        numbers[j] = temp;
          }
      }
     }
     //使用foreach循环输出
     for(int x : numbers)
     {
      System.out.println(x);
     }
     //使用字符串表达形式输出,输出形式更为直观        
     System.out.println(Arrays.toString(numbers));
     
  4.冒泡排序
  int[] numbers = {23,45,12,8,78,100};
  int temp;
  for(int i=0;i<numbers.length;i++)
  {
   for(int j = 0;j<numbers.length-i-1;j++)
   {
    if(numbers[j]>numbers[j+1])
    {
     temp = numbers[j];
        numbers[j] = numbers[j+1];
        numbers[j+1] = temp;
    }
   }
  }
  for(int i:numbers)
  {
   System.out.println(i);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值