javase:集合工具类
Collections工具类API
同数组工具类Arrays一样,集合工具类提供了(排序,二分查找,乱序,填充)方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsAPI {
public static void main(String[] args) {
//1.创建一个集合
List list = new ArrayList();
//2.添加元素
list.add(145);
list.add(254);
Collections.addAll(list,34,48,6785);
System.out.println(list);
//3.集合拷贝 //拷贝前需要初始化集合
List dest = new ArrayList();
Collections.addAll(dest,0,0,0,0,0,0,0,0);
Collections.copy(dest,list);
System.out.println(dest);
//4.数据填充
//Collections.fill(dest,"A");
//System.out.println(dest);
//4.获取集合中的最大值
int max = (int)Collections.max(dest);
System.out.println(max);
//5.获取集合中最小值
int min = (int)Collections.min(dest);
System.out.println(min);
//6.替换
Collections.replaceAll(dest,0,-1);
System.out.println(dest);
//7.反转
Collections.reverse(dest);
System.out.println(dest);
//8.乱序
Collections.shuffle(dest);
System.out.println(dest);
//9.排序
Collections.sort(dest);
System.out.println(dest);
//10.交换
Collections.swap(dest,0,5);
System.out.println(dest);
//11.二分查找 有序集合
Collections.sort(dest);
int index = Collections.binarySearch(dest,34);
System.out.println(dest);
System.out.println(index);
}
}
Comparable和Compartor
Comparable特点
①表示可以比较的(用于类的实现)
②实现这个接口,表示这个类的实例可以比较大小,可以进行自然排序
③compareTo(Object)用于判断两个对象的大小,返回值为正数表示大,负数表达小,返回0相等
④Comparable的实现必须与equals()的结果一致。就是如果compareTo()返回0,那么equals()就应该是true
Compartor比较工具
用于临时定义比较规则,不是默认的比较规则
Comparable和Compartor比较
①Comparable:对象与对象之间的比较,和equals()差不多
equals():是判断当前对象和另一个对象是否相等
compareTo:是判断当前对象和另一个对象的大小,比较是hashCode的值,该接口用于实体类中
②Comparator:它是可以独立存在的比较算法
该算法一般被集合调用,用于比较集合中两个对象的大小
Collection和Collections对比
①Collection是抽象的集合,实现它的有List和set
②Collections集合静态的工具类,为集合提供工具方法。例如:sort,fill,swap等方法
泛型编程
指在对象建立的时候不指定具体类型,而是在申明和实例化对象的时候指定具体的类型
ListDemo.java
package CollectionsDemo;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
public class ListDemo {
public static void main(String[] args) {
//1.创建一个集合
/*List<String> list = new ArrayList<String>();
list.add("1");
list.add("A");
list.add("point");
list.add("Date");
System.out.println(list);*/
//2.获取一个元素
//System.out.println(list.get(3).equals("abc"));//变量类型不同无法比较
/*HashMap map = new HashMap();
map.put(1,"A");
map.put(2,"b");
map.put("ABC",1);
map.put(1.0,new Date());
System.out.println(map);//{1.0=Sun Sep 26 12:32:10 CST 2021, 1=A, 2=b, ABC=1}*/
HashMap<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"A");
map.put(2,"c");
map.put(3,"Ahg");
map.put(4,"a");
System.out.println(map);//{1=A, 2=c, 3=Ahg, 4=a}
}
}