JavaOOP-集合框架
1.Java集合框架包含的内容
Java集合框架为我们提供了一套性能优良,使用方便的接口和类,它们都位于在java.util包中。
Collection 接口存储一组不唯一,无序的对象。
List 接口存储一组不唯一,有序(插入顺序)的对象。
Set 接口存储一组唯一,无序的对象 。
Map接口存储一组键值对象,提供key到value的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。
Iterator接口是负责定义访问和遍历元素的接口。
2.List接口
实现List接口的常用类有ArrayList和LinkedList。它们都可以容纳所有类型的对象,包括null,允许重复,并且都保存元素的存储顺序。
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList采用链表(链表没有下标)存储方式。插入、删除元素时效率比较高
1.ArrayList集合类
1 ArrayList<String> arrayList=new ArrayList<String>();
2 arrayList.add("美美");
3 arrayList.add("如花");
4 arrayList.add("旺财");
5 //遍历方法
6 for(int i=0;i<arrayList.size();i++){
7 //get() 通过下标拿到集合中的每一项
8 System.out.println(arrayList.get(i));
9 }
2. ArrayList常用的各种方法
方法名 | 说明 |
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开始 |
3.LinkedList集合类
1 Person person =new Person();
2 person.setName("哈哈");
3 person.setAge(55);
4
5 Person person2 =new Person();
6 person2.setName("吼吼");
7 person2.setAge(22);
8
9 LinkedList<Person> linkedList=new LinkedList<Person>();
10 linkedList.add(person);
11 linkedList.addFrist(person2);
12 for (int i = 0; i < linkedList.size(); i++) {
13 System.out.println(linkedList.get(i).getName());
14 }
4.LinkedList的特殊方法
方法名 | 说明 |
void addFirst(Object o) |
在列表的首部添加元素 |
void addLast(Object o) |
在列表的末尾添加元素 |
Object getFirst() |
返回列表中的第一个元素 |
Object getLast() |
返回列表中的最后一个元素 |
Object removeFirst() |
删除并返回列表中的第一个元素 |
Object removeLast() |
删除并返回列表中的最后一个元素 |
3.Map接口
1.HashMap集合类
1 Map<String,String> map=new HashMap<String, String>();
2 map.put("CBC", "中国建设银行");
3 map.put("ABC", "中国农业银行");
4 map.put("ICBC", "中国工商银行");
5 Set<String> set=map.keySet();
6 //方式1. 利用循环 通过key值拿到valus值
7 for(String key:set){
8 System.out.println(key);
9 //get()方法
10 System.out.println(map.get(key));
11 }
2.遍历HashMap的五种方式
1 //方式1. 利用循环 通过key值拿到valus值
2 for(String key:set){
3 System.out.println(key);
4 //get()方法
5 System.out.println(map.get(key));
6 }
7 System.out.println("=============");
8 //方式2. 利用循环 直接拿到Key
9 Collection<String> values = map.values();
10 for(String value:values){
11 System.out.println(value);
12 }
13 System.out.println("====================");
14 //方式3. 利用循环 直接拿到Key 和Value
15 Set<Entry<String, String>> entrySet = map.entrySet();
16 for (Entry<String, String> entry : entrySet) {
17 System.out.println(entry.getKey());
18 System.out.println(entry.getValue());
19 }
20 //方式4. 使用Itertor迭代器 遍历 Key和value
21 System.out.println("========Itertor========");
22 Set<String> keySet = map.keySet();
23 Iterator<String> iterator = keySet.iterator();
24 //循环条件 Itertor是否有下一个元素
25 while (iterator.hasNext()) {
26 //
27 String next = iterator.next();
28 System.out.println(next);
29 System.out.println(map.get(next));
30 }
31 System.out.println("===========5==========");
32 //方式5. 使用迭代器遍历 Key+Value遍历
33 Iterator<Entry<String, String>> iterator2 = map.entrySet().iterator();
34 while(iterator2.hasNext()){
35 Entry<String, String> next = iterator2.next();
36 System.out.println(next.getKey());
37 System.out.println(next.getValue());
38 }
3.Map的常用方法
方法名 | 说明 |
Object put(Object key, Object val) |
以“键-值对”的方式进行存储 |
Object get (Object key) |
根据键返回相关联的值,如果不存在指定的键,返回null |
Object remove (Object key) |
删除由指定的键映射的“键-值对” |
int size() |
返回元素个数 |
Set keySet () |
返回键的集合 |
Collection values () |
返回值的集合 |
boolean containsKey (Object key) |
如果存在由指定的键映射的“键-值对”,返回true |
总结
别把工作当负担,与其生气埋怨,不如积极快乐的去面对,当你把工作当作生活和艺术,你就会享受到工作的乐趣。
赵昌平 2018年3月13日21:25:10