标签:链表 策略 高效 效率 顺序存储 sys dma 特定 linked
允许有重复的元素
方法名称 | 描述 | 返回类型 |
---|---|---|
add(Ele) | 参数类型为Object (追加) | boolean |
add(index,Ele) | 指定位置添加元素 | void |
addAll(Col) | 参数为Collection集合 (追加) | boolean |
addALL(index,Col) | boolean | |
contains(Ele) | boolean | |
containsAll(Col) | boolean | |
clear() | 移除列表中的所有元素 | void |
get(index) | 返回索引为index的元素 | void |
isEmpty() | boolean | |
size() | 返回列表中元素个数 | int |
remove(Ele/index) | boolean | |
removeAll(Col) | boolean | |
set(index,Ele) | 将索引为index的元素替换为Ele | 成功则,返回被被替换掉的元素 |
toArray | 返回一个对象数组(数组元素的顺序与列表一样) | Object |
ArrayList() | 无参构造 | |
ArrayLis(int Size) | 指定初始容量 | |
ArrayList(Col) | 中的初始元素 |
一般情况使用ArrayList代替
LinkedList() | 无参构造 | |
LinkedList(Col) | 指定初始元素 |
ArrayList的底层为数组LinkedList的底层为双链表
ArrayList和LinkedList的功能方法没有同步
public static void main(String[] args) {
Integer[] array = {1,3,4,2,423,11,234,23,42,34,23};
List lst = Arrays.asList(array);
System.out.println( lst );
// Iterator<Integer> iterator = lst.iterator();
// while(iterator.hasNext()) {
// System.out.println( iterator.next());
// }
}
不允许有重复的元素
add(Ele) | boolean | |
addAll(Col) | boolean | |
clear() | void | |
isEmpty() | boolean | |
remove(Ele) | boolean | |
removeAll(COl) | boolean | |
size() | int | |
contains(Ele) | boolean | |
retainAll(Col) | 将参数集合中有的元素从Set集合中移除 | boolean |
toArray() | 对象数组 |
HashSet() | 无差构造,默认容量16 | |
HashSet(int Size) | 指定初始容量 | |
HashSet(COl) | 指定初始元素 |
HashSet允许添加null值但只能添加一次
LinkedHashSet() | 无参构造方法 | 初始容量16 |
LinkedHashSet(int Size) | ||
LinkedHashSet( COl ) |
first() | 返回第一个元素(最小的元素) | Object |
last() | .. | Object |
headSet(Ele) | 返回一个包含小于Ele的SortedSet | sortedSet |
tailSet(Ele) | ...大于 | sortedSet |
subSet(fromEle,toEle) | 返回>=formEle&&<toEle | sortedSet |
特点
天然有序,无论以什么顺序插入元素,在遍历的时候都是有序的
没有采用哈希存储策略,TreeSet采用的是二叉树结构存储
构造方法
方法名称 | 描述 | |
---|---|---|
TreeSet() | 无参构造,创建一个空的TreeSet对象 | |
TreeSet( SortedSet s) | 含有指定元素 | |
TreeSet( Col ) | 含有指定元素 | |
TreeSet( Comparator c) | 具有指定比较器的空TreeSet对象 |
实现Comparator接口(比较器)达到其他排序需求。(重写compare方法)
package test_02;
import java.util.*;
public class set_text {
public static void main(String[] args) {
Integer[] array = {1,3,4,2,4,11,234,23,42,34,23};
List lst = Arrays.asList(array);
Set<Integer> sortSet = new TreeSet<Integer>( new Agecompare() );
sortSet.addAll(lst);
System.out.println( sortSet );
}
public static class Agecompare implements Comparator<Integer> {
public int compare(Integer o1, Integer o2) {
return (int)o2-(int)o1; //逆序
}
}
}
特点
clear() | void | |
containsKey(key) | boolean | |
containsValue(value) | boolean | |
get(key) | 获取健名为key的健值 | Object |
isEmpty() | boolean | |
put(key,value) | 如果存在key,这将value添加进去并与其关联,不存在这都添加然后关联起来 | Object,返回value |
putAll(Map t) | ... | void |
remove(key) | 移除key所关联的值value,并将其值value返回 | Object |
size() | 返回键值对的个数 | int |
方法名 | 描述 | 返回值类型 |
---|---|---|
HashMap() | 无参构造,初始容量为16 | |
HashMap(Map m) | 指定初始内容 |
一般情况用HahMap代替
LinkedHashMap() | 无参构造 | |
LinkedHashMap(int Size) | ||
LinkedHashMap(Map m) |
firstKey() | 返回SortedMap中第一个对象(最小的元素) | Object |
lastKey()) | ...最大.. | Object |
headSet(Ele) | SortMap | |
TrailSet(Ele) | SortMap | |
subSet(formElE,lastEle) | SortedMap |
TreeMap() | 无参构造,创建一个空的TreeMap对象 | |
TreeMap(SortedMap s) | 指定初始元素 | |
TreeMap(Map c) | ||
TreeMap(COmparator c) | 指定比较器 |
java.uitl.Stack
继承于Vector类,利用Vector实现的
empty() | booean | |
peek() | 查看栈顶元素 | Object |
pop() | 移除栈顶元素 | Object |
push(Ele) | 将Ele元素进栈 | |
search(Object 0 ) | 返回指定元素Ele在栈中的位置,没有返回-1 | int |
peek() | 返回队列中的第一个元素,队列为空则返回null | Object |
size() | int | |
pop() | 移除队列中的第一个元素,队列为空则抛出异常 | Object |
push(Object o) | 添加...,队列满时抛出异常 | void |
ArrayDeque() | ||
ArrayDeque(int size) | 指定初始容量 | |
ArrayDeque(COl) | 指定初始元素 |
HashNext() | 判断是否还有没有遍历的元素 | boolean |
next() | 获取到集合中下一个将要遍历的元素,如果没有要遍历的元素则,抛出NoSuchElementException异常 | Object |
remove() | 将下一个要遍历的元素从遍历的范围中移除 | void |
package test_02;
import java.util.*;
public class set_text {
public static void main(String[] args) {
Integer[] array = {1,3,4,2,4,11,234,23,42,34,23};
List lst = Arrays.asList(array);
TreeSet<Integer> sortSet = new TreeSet<Integer>( lst );
Iterator<Integer> iterator = sortSet.iterator(); //获取迭代器
while(iterator.hasNext()) {
System.out.print(iterator.next()+ ",");
}
}
}
package test_02;
import java.util.*;
public class set_text {
public static void main(String[] args) {
Integer[] array = {1,3,4,2,4,11,234,23,42,34,23};
List lst = Arrays.asList(array);
TreeSet<Integer> sortSet = new TreeSet<Integer>( lst );
Iterator<Integer> iterator = sortSet.iterator(); //获取迭代器
for (Integer valeu : sortSet) {
System.out.print(valeu + ", ");
}
}
}
List的索引遍历
package test_02;
import java.util.*;
public class set_text {
public static void main(String[] args) {
Integer[] array = {1,3,4,2,4,11,234,23,42,34,23};
List lst = Arrays.asList(array);
for(int i=0 ;i<lst.size();i++) {
System.out.print( lst.get(i)+ "," );
}
}
}
1.Map提供的获取键或值的方法
名称 | 描述 | 返回值类型 |
---|---|---|
keySet() | 返回一个包含map中所有键的对象的集合 | Set |
values() | 返回一个包含map中所有值对象的集合 | Collection |
描述
java.util.Collections类是一个工具类,该类的方法都是静态方法。
方便对集合的排序,搜索等操作。
collections提供了两个sort方法用于对元素的排序。
public static void sort(List list)
public static void sort(List list,comparator c)
collections提供了两个binarySearch方法用来搜索列表中特定元素
binarySeach方法常用的是二分法搜索,只能对已有序的列表搜索。public static int binarySearch(List list,Object Ele)
public static int binarySearch(List list,Object Ele,comparator c)
collections提供了suffle方法来打乱列表中元素的顺序。
public static void shuffle(List list)
addAll(col,Object o) | 将对象o添加到col( collection )集合中 | boolean |
copy(List ls1,List ls2) | 将列表ls2中的内容复制到ls1中 | void |
disjoint(col_1,col_2) | 比较col_1与col_2是否有相同的元素,没有则返回false | boolean |
fill(List ls,Object o) | 填充 | void |
reverse(List ls) | 将列表ls反转 | void |
swap(List ls,int i,int j) | 交换ls列表中索引为i和j所对应的值 | void |
使用哈希时,本存储的对象需要一个哈希码(hash code 一般是一个整数)。
hashCode方法用于计算提供一个哈希码。
工作原理:
进入哈希存储之前,首先调用hashSet获取一个哈希码,来定位哈希桶
在哈希桶中,不同对象是按照线性表的方式存储的
哈希码决定了分离度,处理好分离度是提高效率的关键因素
标签:链表 策略 高效 效率 顺序存储 sys dma 特定 linked
原文地址:https://www.cnblogs.com/zoukun/p/12203097.html