Java高级编程集合框架和泛型(一)
文章目录
一、Collection:不唯一,无序
1.list:不唯一,有序
(1)ArrayList:内部数组实现,查询效率高
ArrayList常用方法
Collection接口常用通用方法还有:clear()、isEmpty()、iterator()、toArray()
方法名 | 说明 |
---|---|
boolean add(Object o) | 在列表的末尾顺序添加元素,起始索引位置从0开始 |
void add(int index,Object o) | 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 |
int size() | 返回列表中的元素个数 |
Object get(int index) | 返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换 |
boolean contains(Object o) | 判断列表中是否存在指定元素 |
boolean remove(Object o) | 从列表中删除元素 |
Object remove(int index) | 从列表中删除指定位置元素,起始索引位置从0开始 |
(2)LinkedList:内部使用双向链表实现,增删效率高
LinkedList常用方法
方法名 | 说明 |
---|---|
void addFirst(Object o) | 在列表的首部添加元素 |
void addLast(Object o) | 在列表的末尾添加元素 |
Object getFirst() | 返回列表中的第一个元素 |
Object getLast() | 返回列表中的最后一个元素 |
Object removeFirst() | 删除并返回列表中的第一个元素 |
Object removeLast() | 删除并返回列表中的最后一个元素 |
ArrayList arrayList = new ArrayList();
arrayList.add("张三");//向集合中插入数据
arrayList.add("李四");
int len = arrayList.size();//获得集合长度
System.out.println(len);
Object objs[] = arrayList.toArray();//将集合转换为数组 输出
System.out.println(Arrays.toString(objs));
//或
System.out.println(Arrays.toString(arrayList.toArray()));
arrayList.add(0,"王五");//输入下标进行插入
System.out.println(Arrays.toString(arrayList.toArray()));
//根据下标 获得对象信息
Object obj = arrayList.get(2);
System.out.println("===="+obj);
//根据下标 删除对象信息
arrayList.remove(0);
System.out.println(Arrays.toString(arrayList.toArray()));
//判断集合中是否有指定元素
boolean bool = arrayList.contains("王五");
System.out.println(bool);
boolean bool1 = arrayList.contains("李四");
System.out.println(bool1);
arrayList.clear();//清空集合
System.out.println(Arrays.toString(arrayList.toArray()));
//判断集合中是否为空 false有值 true空
System.out.println(arrayList.isEmpty());
//循环遍历集合
System.out.println("--------循环集合------------");
for(int i = 0;i<arrayList.size();i++) {
System.out.println(arrayList.get(i));
}
//for增强循环
/*
* for(数据类型 变量名:要循环的数组或集合){
*
*
* }
*
*
*
*/
for(Object obj1:arrayList) {
System.out.println(obj1);
}
//如果输出看不到也许是上面把集合清空了
2.Set:唯一,无序
Set接口存储一组唯一,无序的对象
HashSet是Set接口常用的实现类
Set接口不存在get()方法
方法1:通过迭代器Iterator实现遍历
3.迭代器Iterator
获取Iterator :Collection 接口的iterator()方法创建Iterator对象
Iterator的方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素
方法2:增强型for循环
Set scores = new HashSet();
scores.add(81);
scores.add(82);
scores.add(83);
scores.add(84);
scores.add(85);
scores.add(86);
System.out.println(scores.size());
System.out.println("======迭代器=======");
//创建迭代器
Iterator it = scores.iterator();
//hasNext 判断下一项是否有值 有true 没false
while(it.hasNext()) {
System.out.println(it.next());
}
System.out.println("for增强循环");
for(Object obj :scores) {
System.out.println(obj);
}
System.out.println(it.next());
}
System.out.println("for增强循环");
for(Object obj :scores) {
System.out.println(obj);
}