| 返回值 | 方法 | 用法 |
|---|---|---|
| boolean | add(Object o) | 添加一个对象 |
| boolean | addAll(Coolection c) | 将一个集合中所有对象添加到这个集合中 |
| void | clear() | 清空此集合的所有对象 |
| boolean | contains(Object 0) | 检查集合是否包含o对象 |
| boolean | equals(Object o) | 比较两个集合是否相等 |
| boolean | isEmpty() | 判断此集合是否为空 |
| boolean | remove(Object o) | 在集合中删除o对象 |
| int | size() | 返回此集合中的元素个数 |
| Object[] | toArray() | 将此集合转成数组 |
(不全,其他的可参照帮助文档)
增删操作,以ArrayList为例。
Collection c = new ArrayList();
//1、添加元素
c.add("apple");
c.add("pear");
c.add("watermelon");
System.out.println("元素个数:"+c.size());//元素个数:3
System.out.println(c);//调用toString()方法 [apple, pear, watermelon]
//2、删除元素
c.remove("pear");
System.out.println("删除之后:"+c);//删除之后:[apple, watermelon]
c.clear();
System.out.println(c.size());//0
遍历操作,以ArrayList为例。
//1、增强for循环遍历
for(Object o:c2){
System.out.println(o);
}
System.out.println("==================================");
//2、迭代器
Iterator iterator = c2.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
//iterator.remove();//迭代器中的删除方法
}
1、List
有序、有下标、元素可重复。
特有方法:
| 返回值 | 方法 | 用法 |
|---|---|---|
| void | add(int index,Object o) | 在index位置插入o |
| boolean | addAll(int index,Collection c) | 在index位置插入c |
| Object | get(int index) | 获取指定位置的元素 |
| List | subList(int fromIndex,int toIndex) | 返回fromIndex到toIndex之间的元素 |
JDK1.2
查询快,增删慢。运行效率快,线程不安全。
默认容量为10。
可以用列表迭代器正向或逆向遍历。
//列表迭代器正向遍历
ListIterator lis = list.listIterator();
while (lis.hasNext()){
System.out.println(lis.next().toString());
}
System.out.println("====================");
//列表迭代器逆序遍历
while (lis.hasPrevious()){
System.out.println(lis.previous().toString());
}
Vector(矢量表)
JDK1.0
查询快,增删慢。运行效率慢,线程安全。
使用枚举器遍历,用法类似于迭代器。
双向链表
查询慢,增删快。
使用方法类似于ArrayList。
linkedList.getFirst();//获取头结点 linkedList.getLast();//获取尾结点2、Set
无序、无下标、元素不可重复。
方法同Collection
删除操作只能通过元素删除,因为没有下标。
遍历操作无法使用for循环,可以用增强for循环和迭代器。
通过hashcode使元素不重复。
TreeSet(实现SortedSet接口)元素对象的类型必须实现Comparable接口。例如Person类是加入TreeSet的一种引用类型,则:
public class Person implements Comparable{ ······ //重写一下方法,用来确定如何判断重复对象 @Override public int compareTo(Person o){ ··· } }
Comparator接口:实现定制比较的比较器,可以作为TreeSet有参构造的参数。传入这个参数后,元素的类可以不必实现Comparable接口。例如:
//Person类是一个自定义的引用类型 TreeSettreeSet = new TreeSet<>(new Comparator (){ @Override public int compare(Person o1,Person o2){ 比较规则与返回值 } });
这里可以使用匿名内部类直接实现Comparator接口。
二、Map- 以键值对的方式存储键:无序、无下标、不可重复值:无序、无下标、可重复
常用方法:
| 返回值 | 方法 | 用法 |
|---|---|---|
| void | clear() | 清空 |
| boolean | containsKey(Object key) | 判断是否存在某个键 |
| boolean | containsValue(Object value) | 判断是否存在某个值 |
| Set< Map.Entey< K,V > > | entrySet() | 将Map对象转成把键值对作为元素的Set集合 |
| V | get(Object key) | 根据键获取值 |
| boolean | isEmpty() | Map是否为空 |
| Set< K > | keySet() | 将所有的key转成一个Set集合 |
| V | put(K key,V value) | 添加键值对 |
| V | remove(Object key) | 根据key删除 |
| int | size() | 返回集合大小 |
| Collection< V > | values() | 以Collection形式返回所有的value |
使用示例,以HashMap为例:
Map1、HashMapmap = new HashMap<>(); //增删 map.put("aaa","AAA"); map.put("bbb","BBB"); map.put("ccc","CCC"); map.put("ddd","DDD"); map.put("eee","EEE"); System.out.println(map);//{aaa=AAA, ccc=CCC, bbb=BBB, eee=EEE, ddd=DDD} map.remove("bbb"); System.out.println(map);//{aaa=AAA, ccc=CCC, eee=EEE, ddd=DDD} //遍历 //1、使用keySet,得到key的Set集合 for(String str:map.keySet()){ System.out.println(str+"="+map.get(str)); } //2、使用entrySet for(Map.Entry e:map.entrySet()){ System.out.println(e); }
JDK1.2加入,线程不安全,运行效率快。
允许null作为key或value。
默认容量为16.
对key进行自动排序
元素对象的类型必须实现Comparable接口。实现方法可参考TreeSet。
所有的方法都是 public static void
| 方法 | 用法 |
|---|---|
| reverse(List> list) | 逆向排列元素 |
| shuffle(List> list) | 随机打乱元素顺序 |
| sort(List< T > list) | 升序排列(元素类型必须实现Comparable接口) |
其他常用方法:
| 方法 | 用法 |
|---|---|
| binarySearch(List>,T key) | 二分搜索一个List实现类的某个值,返回索引 |
| addAll(Collection c,T…elements) | 将某些元素全部加入c集合 |
| copy(List l1,List l2) | 将l2的所有元素复制到l1(l1是新List时先扩容,否则容易下标越界) |
扩容方法示例:
//定义list集合 Listlist = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); List list2 = new ArrayList<>(); Collections.addAll(list2,new String[list.size()]);//实例化元素个数为list.size()元素全为空的String数组,全部添加到待赋值集合list2中,相当于为list2扩容成和list一样大的集合 Collections.copy(list2,list); System.out.println(list2.toString());//[aaa, bbb, ccc]
上一篇 常用类



