java 数组、集合基本操作与排序:数组排序、自定义排序、PriorityQueue堆排序、

程序是直接可运行的

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 
        
    }

}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值