文章目录
- 1.集合框架
- 1.1 collection
- 1.2 map
- 2. collection
- 2.1.集合迭代
- 2.2.contains和remove
- 2.3集合中元素的删除
- 3.List
- 4.ArrayList
- 5.LinkList
- 6.Vector
- 7.泛型
- 7.1泛型初步
- 7.2自动类型推断机制
- 7.3 自定义泛型
- 8.增强for循环
- 9.Set
- 9.1HashSet
- 9.2 TreeSet
1.集合框架
1.1 collection
1.2 map
2. collection
查文档。
2.1.集合迭代
package com.sdnu.javase.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* @projectName: javase
* @package: com.sdnu.javase.collection
* @className: CollectionTest01
* @author: Beyong
* @description: TODO
* @date: 2023/2/26 15:32
* @version: 1.0
*/
public class CollectionTest01 {
public static void main(String[] args) {
Collection numberCollection = new ArrayList();
numberCollection.add(12);
numberCollection.add(24);
numberCollection.add(67);
Iterator it = numberCollection.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
2.2.contains和remove
contains和remove底层都调用了equals。
2.3集合中元素的删除
当集合结构发生改变时,迭代器必须重写获取。
删除元素使用:迭代器.remove()
(不要使用 集合.remove())
3.List
文档
4.ArrayList
- 默认初始化容量为10(底层先创建一个初始化长度为0的数组,添加元素后,长度初始化为10)
- 底层是一个Object类型的数组
- 构造方法:new ArrayList() new ArrayList(指定容量)
- 扩容到1.5倍
- 检索效率高,增删效率低
- 向数组末尾添加元素效率高
HashSet转成ArrayList:
Collection c = new HashSet();
List myList = new ArrayList(c);
非线程安全变成线程安全:
List myList = new ArrayList();
Collections.synchronizedList(myList);
5.LinkList
随机增删效率高,检索效率低。
6.Vector
- 初始容量为10
- 扩容为原来的2倍
- 线程安全的
7.泛型
7.1泛型初步
package com.sdnu.javase.collection;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
/**
* @projectName: javase
* @package: com.sdnu.javase.collection
* @className: GenericTest01
* @author: Beyong
* @description: TODO
* @date: 2023/2/27 17:21
* @version: 1.0
*/
public class GenericTest01 {
public static void main(String[] args) {
List<Animal> myList = new ArrayList<Animal>();
Cat c = new Cat();
Bird b = new Bird();
myList.add(c);
myList.add(b);
Iterator<Animal> it = myList.iterator();
while (it.hasNext()){
Animal obj = it.next();
}
}
}
class Animal {
public void move(){
System.out.println("动物在移动");
}
}
class Cat extends Animal{
public void catchMouse(){
System.out.println("猫抓老鼠");
}
}
class Bird extends Animal {
public void fly(){
System.out.println("鸟儿在飞翔");
}
}
使用泛型指定集合中存储的类型。
不使用则Animal obj = it.next();报错。
7.2自动类型推断机制
List<Animal> myList = new ArrayList<>();
7.3 自定义泛型
package com.sdnu.javase.collection;
/**
* @projectName: javase
* @package: com.sdnu.javase.collection
* @className: Test03
* @author: Beyong
* @description: TODO
* @date: 2023/2/27 17:54
* @version: 1.0
*/
public class Test03<T> {
public void method(T obj){
System.out.println(obj);
}
public static void main(String[] args) {
Test03<String> myTest = new Test03<>();
myTest.method("pppp");
// 错误:myTest.method(123);
}
}
8.增强for循环
for(元素类型 变量名:数组或者集合){
}
9.Set
9.1HashSet
特点:无序不可重复。
(无序指的是存放进去的顺序和取出来的顺序不同)
9.2 TreeSet
特点:无序不可重复,但是可以排序。
(这里无序指的是存放进去的顺序和取出来的顺序不同,可以排序指的是集合中的元素可以排序。)
作者:Beyong
出处:Beyong博客
github地址 https://github.com/beyong2023
本博客中未标明转载的文章归作者Beyong有,欢迎转载,但未经作者同意必须保留此段声明,且在文章明显位置给出原文连接,否则保留追究法律责任的权利。