1.数组的排序:Arrays.sort(); 用法
import java.util.Arrays;
int[] a = {1,3,2};
Arrays.sort(a);
for(int i=0;i<a.length;i++){System.out.println(a[i]);}//结果:以 升序输出(无论数字int还是字母String)
example:
package lianxi;//1.把一组学生成绩按升序排列 2.把一堆字母按降序输出
import java.util.Scanner;
import java.util.Arrays;
public class array_1 {
public static void main(String[] args) {
/*
Scanner s = new Scanner(System.in);
System.out.println("请输入学生个数:");
int n = s.nextInt();
int[] a = new int[n];
for(int i=0;i<n;i++){
System.out.println("请输入第"+(i+1)+"个学生的成绩");
a[i] = s.nextInt();
}//用到了 Arrays.sort(a); 升序输出数组
Arrays.sort(a);
for(int i=0 ; i<a.length;i++){
System.out.println(a[i]);
}
*/ //这是1
Scanner s = new Scanner(System.in);
System.out.println("请输入这组字母的个数:");
int m = s.nextInt();
String[] str = new String[m];
for(int i=0;i<str.length;i++){
System.out.println("请输入第"+(i+1)+"个字母:");
str[i] = s.next();
}
Arrays.sort(str);
for(int i=str.length-1;i>=0;i--){
System.out.println(str[i]);
}
}
}
2. 数组的复制 a[3]={1,3,4};用for循环可复制到 b[];
3.数组的查找:
String name = "岳达";
String[] arr = {"朝凼","里斯","岳达"};
for(int i=0;i<arr.length;i++){
if(name.equals(arr[i])){
System.out.println("存在!");
break;
}
}
4.数组的插入: 在a[3] = {2,4,5};末尾插入1,再排序(不要用Arrays.sort(a);)//插入是为了引出冒泡序
int a[3] = {2,4,5};
a(a.length-1) = 1;
for(int i=a.length-1;i>0;i--{
if(a[i]<a[i-1]){int t=a[i];a[i]=a[i-1];a[i-1]=t;}
}
5.冒泡排序和选择排序 有关键
package lianxi;//定义一组数字的长度并输入,然后分别用冒泡排序和选择排序输出
import java.util.Scanner;
public class adsadd {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入数组的长度:");
int m = s.nextInt();
int[] arr = new int[m];
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个数的大小:");
arr[i] = s.nextInt();
}//冒泡排序
//关键在于:在不考虑效率问题时,从实例知道i和j循环次数相同 而j+1循环次数为1~arr.length-1(这就是最后一个数!)即可得到j的取值范围 i就知道了
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1;j++){//通过个例 比如 arr.length = 7 第一回比6次,之后是5次,4,3...所以这里改为 j<arr.length-1-i;可提高效率
if(arr[j]>arr[j+1]){//大于号 交换 换把大的沉底 既得到 升序 反之 降序
int t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}System.out.println("冒泡了~");
for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}
//选择排序
//关键在于 原理! 第一个和后面的每一个比较:i = 0 j = i+1 a[i]>a[j]?
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){int t = arr[i];arr[i]=arr[j];arr[j] = t;}
}
}for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}
}
}