collection和collections的區別
阿新 • • 發佈:2018-02-09
import 替換 但是 param ava 自然 key 搜索 per colleciton是集合接口,繼承它的接口有list,set,註意map集合雖然也屬於集合體系,但是map並不繼承collection,map和collection是平級關系
根據指定比較器產生的順序對指定列表進行排序
static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
根據元素的自然順序,返回給定 collection 的最大元素。
static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)
根據指定比較器產生的順序,返回給定 collection 的最大元素。
static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
使用二分搜索法搜索指定列表,以獲得指定對象。
static <T> void fill(List<? super T> list, T obj)
使用指定元素替換指定列表中的所有元素
static void reverse(List<?> list) 反轉指定列表中元素的順序。
static void shuffle(List<?> list) 使用默認隨機源對指定列表進行置換。
二分法原理
collections是集合工具類,服務於colleciton,相當於collciont的工具,常用的方法有:
static <T extends Comparable<? super T>> void sort(List<T> list)
根據元素的自然順序 對指定列表按升序進行排序。
static <T> void sort(List<T> list, Comparator<? super T> c)
static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
根據元素的自然順序,返回給定 collection 的最大元素。
static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp)
根據指定比較器產生的順序,返回給定 collection 的最大元素。
static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
static <T> void fill(List<? super T> list, T obj)
使用指定元素替換指定列表中的所有元素
static void reverse(List<?> list) 反轉指定列表中元素的順序。
static void shuffle(List<?> list) 使用默認隨機源對指定列表進行置換。
二分法原理
import java.util.ArrayList; import java.util.List; public class Demo { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); System.out.println(list); int binarySearch = binarySearch(list,4); System.out.println(binarySearch); } /** * 註意使用此方法的前提是已經排好序 * @param list * @param key * @return */ public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key){ int max=list.size()-1;//最大的位置 int min=0;//最小的位置 int mid=0;//中間位置 while(min<=max){ mid=(max+min)>>1; Comparable<? super T> comparable = list.get(mid); int num= comparable.compareTo(key); if(num>0){ max=mid-1; }else if(num<0){ min=mid+1; }else{ return mid; } } return -1; } }
collection和collections的區別