黑马JAVA P135 可变参数、集合操作的工具类Collections

 

 

 

package com.itheima.d2_parms;

import java.util.ArrayList;
import java.util.Arrays;

/**
 * 可变参数的作用:
 * 传输参数非常灵活,方便
 * 可以不传输参数。
 * 可以传输一个参数。
 * 可以传输多个参数。
 * 可以传输一个数组。
 * 可变参数在方法内部本质上就是一个数组。
 * 可变参数的注意事项:
 * 1.一个形参列表中可变参数只能有一个!!
 * 2.可变参数必须放在形参列表的最后面!!
 * 小结:记住
 */
public class MethodDemo {
    public static void main(String[] args) {
        sum(); //1.不传参数
        sum(10);
        sum(10,20,30);//3.可以传输多个参数
        sum(new int[]{10, 20, 30, 40, 50}); //4.可以传输一个数组
    }

    /**
     * 注意:一个形参列表中只能有一个可变参数,可变参数必须放在形参列表的最后面
     * @param nums
     */

    public static void sum(int...nums) {
        //注意:可变参数在方法内部其实就是一个数组。nums
        System.out.println("元素个数:" +nums.length);
        System.out.println("元素内容:" + Arrays.toString(nums));
    }
}

 

 

 

package com.itheima.d1_set;

public class Apple implements Comparable<Apple> {
    private String name;
    private String color;
    private double price;
    private int weight;

    public Apple() {
    }

    public Apple(String name, String color, double price, int weight) {
        this.name = name;
        this.color = color;
        this.price = price;
        this.weight = weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    @Override
    public String toString() {
        return "Apple{" +
                "name='" + name + '\'' +
                ", color='" + color + '\'' +
                ", price=" + price +
                ", weight=" + weight +
                '}';
    }

    /**
     * 方式一:类自定义比较规则
     * o1.compareTo(o2)
     * @param o
     * @return
     */
    @Override
    public int compareTo(Apple o) {
        //按照重量进行比较的
//        return this.weight - o.weight1; //去重重量重复的元素
        return this.weight - o.weight ; // 保留重量重复的元素

    }
}
package com.itheima.d3_collections;


import java.util.*;

/**
 *目标:引用数据类型的排序。
 * 字符串按照首字符的编号升序排序!
 *
 *
 * 自定义类型的比较方法API:Collection
 *     -public static <T> void sort(List<T> list):
 *     将集合中元素按照默认规则排序。
 *     对于自定义的引用类型的排序人家根本不知道怎么排,直接报错!
 *
 *      -public static <T> void sort(List<T> list,Comparator<? super T> c):
 *          将集合中元素按照指定规则排序,自带比较器
 *
 */
public class CollectionsDemo2 {
    public static void main(String[] args) {
        List<Apple> apples = new ArrayList<>();
        apples.add(new Apple("红富士", "红色", 9.9, 500));
        apples.add(new Apple("绿富士", "绿色", 8.9, 400));
        apples.add(new Apple("黄富士", "黄色", 7.9, 300));
        apples.add(new Apple("橙富士", "橙色", 6.9, 500));
//
//        Collections.sort(apples); //方法一:可以的,apples重写了比较规则
//        System.out.println(apples);

//        //方式二:sort方法自带比较器对象
//        Collections.sort(apples, new Comparator<Apple>() {
//            @Override
//            public int compare(Apple o1, Apple o2) {
//                return Double.compare(o1.getPrice(), o2.getPrice());//按照价格排序!!
//            }
//        });
        Collections.sort(apples, (o1, o2) -> Double.compare(o1.getPrice(), o2.getPrice()));
        System.out.println(apples);
    }
}


package com.itheima.d3_collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * 目标:Collection工具类的使用
 * java.utils.Collections:是集合工具类
 * Collections并不属于集合,是用来操作集合的工具类。
 * Collections有几个常用的API:
 *      -public static <T>boolean addAll(Collection<? super T> c,T...elements)
 *      给集合对象添加批量元素!
 *      -public static void shuffle(List<?>list):打乱集合顺序。
 *      -public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
 *      -public static <T> void sort(List<T> list,Comparator<? super T> c):将集合中元素按照指定规则排序
 */
public class CollectionsDemo1 {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
//        names.add("楚留香");
//        names.add("胡铁花");
//        names.add("张无忌");
//        names.add("陆小凤");
        Collections.addAll(names,"楚留香","胡铁花","张无忌","陆小凤");
        System.out.println(names);

        //2.public static void shuffle(List<?>list):打乱集合顺序。x
        Collections.shuffle(names);
        System.out.println(names);

        //3.public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。 (排值特性的元素)
        List<Integer> list = new ArrayList<>();
        Collections.addAll(list,12, 23 ,4, 5);
        System.out.println(list);
        Collections.sort(list);
        System.out.println(list);


    }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值