java API 学习1 Collections
来源:互联网 发布:淘宝客服聊天记录技巧 编辑:程序博客网 时间:2024/05/02 04:52
一.Collections
Collections类全部是静态函数,主要是用来对Collection中的某个元素进行操作和对Collection进行操作
A.对某个元素进行操作
1. 查询
static <T> int binarySearch(List<? extends Comparotor<? super T>> list, T key);返回key的index,假如不存在返回-1,假如list有多个相同的key,则不能确定返回哪一个的index
下面这个方法类似
binarySearch(List<? extends T> list, T key,Comparator<? super T> c)
2.获得某个元素个数
static int frequency(Collection<?> c,Object key)返回c中key的个数
3.替换指定元素
static void replace(List<T> list,T old,T new)将list中所有old替换为new
4.交换两个元素
static void swap(List<?> list, int i ,int j)建好index为i和j的元素
5.获得Collection中最大和最小的元素
static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> c)
返回c中大元素
以下方法类似
static <T extendsObject &Comparable<? super T>> T min(Collection<? extends T> c)
static T min(Collection<? extends T> c,
Comparator<? super T> comp
)
static T max(Collection<? extends T> c,
Comparator<? super T> comp
)
B.对Collection的操作
1.检查Collection中的类型
static <E> Collection<E> checkedCollection(Collection<? extends E> c,Class<E> type);返回c中类型符合的元素组成的Collection,剩下还有checkedList(),checkedMap(),checkedSet(),checkedSortedSet(),checkedSortedMap();
2.获得空的Collection
static <T> Iterator<T>
emptyIterator();返回一个空的Iterator,且不可改变
类似方法:emptyEnumeration(),emptyList(),emptySet(),emptyMap(),emptyListIterator();
3.两个Collection的复制
static <T> void copy(List<? super T> dest,List<? extends T> src);将src复制到dest
4.检查两个Collection是否有相同元素
static boolean disjiont(Collection<?> c1,Collection<?> c2);
5.获得在ListB在ListA中index
static int indexOfSubList(List<?> source,List<?> target );
eg: source {1,2,3,4,5},targe{3,4},indexOfSubList(source,targe)返回值就是2
类似方法static int lastIndexOfSubList(List<?> source,List<?> targe);
6.List排序
static <T extends Comparable<? super T>> void
sort(List<T> list);将list顺序排序
static void reverse(List<?> list);反序
static void shuffle(List<?> list);使用默认的随机规则将list重新随机排序
static void rotate(List<?> list,int distance);将该list前移distance位,
eg: list{1,2,3,4,5,6} rotate(list,3) ,list变为{4,5,6,1,2,3}
7.获得异步Collection
static <T> Collection<T>
synchronizedCollection(Collection<T> c);使用该方法是获得了异步Collection,但是这个异步是部分异步的,根据官方api,使用异步Collection后任然要手动调用synchronized(c){}
查看源代码:
SynchronizedCollection(Collection<E> c) { if (c==null) throw new NullPointerException(); this.c = c; mutex = this; }
public boolean add(E e) { synchronized(mutex) {return c.add(e);} } public boolean remove(Object o) { synchronized(mutex) {return c.remove(o);} } //没有进行同步操作 public Iterator<E> iterator() { return c.iterator(); // 由用户自己手动同步 }所有在进行对该Collection进行处理add和remove以外的原子操作时,任然需要synchronized操作
8.获得不可改变的Collection
Collections.EMPTY_LIST;这是一个不可改变的空的list
类似有Collections.EMPTY_MAP,Collections.EMPTY_SET,emptyEnumration(),emptyList()等
static <T> Set<T>
Singleton(T o)返回一个有一个o元素的不可变的set
static <T> Collection<T>
unmodifiableCollection(Collection<? extends T> c)
返回包含c中所有元素的不可变的Collection
- java API 学习1 Collections
- API学习Collections
- 关于 Java Collections API
- java.util.Collections学习
- java.util.Collections学习
- Java中Collections学习
- java Collections学习
- 深入理解 Java Collections API (I)
- 深入理解 Java Collections API (II)
- java的collections的sort的API
- Collections API
- Java 集合学习<7>Collections
- java学习笔记<十七>Collections
- Java Collections-1
- Java Collections(1)
- 关于 Java Collections API 您不知道的 5 件事,第 1 部分
- 关于 Java Collections API 您不知道的 5 件事,第 1 部分
- 关于 Java Collections API 您不知道的 5 件事,第 1 部分
- zoj 3761 Easy billiards 并查集+dfs
- MySQL 模拟PostgreSQL generate_series 表函数
- lua5.1.4中实现自定义require的loader函数
- TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库
- 学习Swing做的打飞机小游戏
- java API 学习1 Collections
- Python深入对象的属性
- XCode Debug
- 有关面试经常考的sql语句
- 游标在定义还是打开时读取数据
- 命令行下使用android SDK工具手工开发简单安卓小项目
- onCreate中获取控件大小
- zip文件 压缩与解压缩
- Notification的两种用法