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);
}
}