程序是直接可运行的
package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
/**
* 数组操作
* @author Administrator
*
*/
public class ArrayOpe {
public static void main(String[] args) {
// TODO Auto-generated method stub
ope1();
}
public static void ope1() {
//申明String数组,并初始化值,3种方式
String[] aArray = new String[5]; //申明5个大小的String数组
String[] bArray = {"a","b","c", "d", "e"}; //申明String数组,并初始化值
String[] cArray = new String[]{"1","2","3","4","5"}; //申明String数组,并初始化值
String arrayString = Arrays.toString(bArray);
System.out.println("数组值转字符串:"+arrayString);
///打印:数组值转字符串:[a, b, c, d, e]
/将字符串数组转换为ArrayList列表
String[] stringArray = { "a1", "a2", "a3", "a4", "a5" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
System.out.println("ArrayList列表值:"+arrayList);
/打印:ArrayList列表值:[a1, a2, a3, a4, a5]
//检查数组是否包含某个值
boolean b = Arrays.asList(stringArray).contains("a1");
System.out.println("是否包含:"+b); //true为包含 false为不包含
//打印:是否包含:true
///排序
///数组排序
int[] cArray2 = new int[]{11, 21, 33, 4, 5}; //申明int数组,并初始化值
Arrays.sort(cArray2);
System.out.println("排序后:"+Arrays.toString(cArray2));
//排序后:[4, 5, 11, 21, 33]
///集合排序
List<Integer> list = Arrays.asList(4, 3, 5, 1, 2);
Collections.sort(list);
System.out.println(list);
//[1, 2, 3, 4, 5]
/自定义排序规则:通过Comparator接口实现自定义排序规则。
Integer[] array = {4, 3, 5, 1, 2};
Arrays.sort(array, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1; // 用于:降序排序判断, 这地方稍改,可用于其他判断排序
}
});
System.out.println(Arrays.toString(array));
// 输出:[5, 4, 3, 2, 1]
//PriorityQueue:基于堆结构,可以快速地获取到最大或最小的元素。
// PriorityQueue:优先级队列是一种先进先出(FIFO)的数据结构,与队列不同的是,操作的数据带有优先级,通俗的讲就是可以比较大小,在出队列的时候往往需要优先级最高或者最低的元素先出队列
// PriorityQueue() 不带参数,默认容量为11,初始容量不能小于1
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(4);
pq.add(3);
pq.add(5);
pq.add(1);
pq.add(2);
while (!pq.isEmpty()) {
System.out.print(pq.poll() + " ");
}
// 输出:1 2 3 4 5
}
}