1.集合的三大接口
1.1集合框架
1.2集合简介
(1)集合有两个父接口 Collection、Map
(2)Collection有两个子接口 List、set
(3)List有两个常见的实现类 ArrayList、LinkedList
(4)Set有两个常见的实现类 HashSet、TreeSet
(5)Map有两个常见的实现类 HashMap、HashTable
1.3不同集合的特点
(1)List 特点:有序、可重复
(2)Set 特点:无序、不可重复
(3)Collection 特点:无序、可重复
(4)Map 特点:无序,不可重复,存放【键值对】(key 键 -- value 值)
2.List集合
2.1 Arraylist和Linklist的区别
2.2List的常用方法
(1)add(o)方法,在末尾添加一个对象
(2)add(int index,o),在指定索引位插入一个对象
(3)set(int index,o),将指定索引位
(4)get(int index),返回指定索引位的对象
(5)remove(int index),删除指定索引位的对象并返回它
(6)remove(o),删除第一个指定的对象,返回值为布尔类型,表示是否删除成功
(7)contains(o),判断是否存在指定的对象,返回值为布尔类型
(8)size(),返回List包含的元素个数(int类型)
(9)indexOf(o),返回该元素的第一个索引值,没有返回-1
(10)clear(),清空List
ArrayList list = new ArrayList();
list.add("张三丰");//添加一个对象到集合中
list.add(1);
list.add(2.333);
System.out.println(list);
System.out.println(list.contains("张三丰"));//判断是否包含"张三丰"字符串对象
System.out.println(list.contains(1));
System.out.println("-------------------------------");
list.remove(0);//删除索引值为0位置上的对象
System.out.println(list.contains("张三丰"));//张三丰在0的位置上,被删除了
System.out.println("-------------------------------");
list.remove((Object)1);//删除对象1
System.out.println(list.contains(1));
System.out.println();
list.add("土豆片");
list.add(1,"西瓜皮");//在指定位置插入一个新的对象
for (int i = 0; i < list.size(); i++) {//size()方法返回集合中对象的个数
System.out.println(list.get(i).toString());//get方法获取i索引值上的对象
}
System.out.println("--------------------------------");
list.set(1,"黄蓉");//在索引为值为1的位置上用"黄蓉"字符串替换原来的内容
for (int i = 0; i < list.size(); i++) {//size()方法返回集合中对象的个数
System.out.println(list.get(i).toString());//get方法获取i索引值上的对象
}
System.out.println("---------------------------");
System.out.println(list.indexOf("小龙女"));//不存在,返回-1
System.out.println(list.indexOf("黄蓉"));//返回1
System.out.println("----------清空----------");
list.clear();//清空list
for (Object obj: list ) {
System.out.println(obj.toString());//可以使用foreach遍历集合
}
System.out.println("----------清空----------");
2.3Linklist的额外方法
头插法和尾插法
主要是在开头和末尾添加值,以及删除开头和末尾的值的方法addFirst(o),addLast(o),removeFirst(),removeLast()
3.Map
3.1hashMap的常用方法
1)put(key,value),添加一个键值对,返回null,key和value都是Object,如果已经存在key,则更改value为新的值并将其返回
(2)get(key),返回key对应的value,如果没有,返回null
(3)remove(key),删除相应的键值对,返回删除掉的value,如果没有返回null
(4)containsKey(key),containsValue(value),返回值为boolean类型
(5)size(),返回包含的键值对数量
(6)keySet(),返回包含所有key值的Set集合
(7)values(),返回包含所有value值的Collection集合
Map map = new HashMap();
Object a = map.put(1,"南瓜");//添加,不存在value,返回值为null
System.out.println(a);//null
Object b = map.put(1,"土豆");//添加,已存在,替换并返回被替换的值
System.out.println(b);//"南瓜"
System.out.println(map);
System.out.println("-------------------------");
a = map.remove(2);//删除一个键值对,参数为key,如果没有对应的键值对,返回null
System.out.println(a);//null
b = map.remove(1);//如果有对应的键值对,返回其value
System.out.println(b);
System.out.println("-------------------------");
map.put(1,"南瓜");
a = map.get(1); //返回与key对应的value
System.out.println(a);//"南瓜"
b = map.get(2);//如果没有该键值对,返回null
System.out.println(b);//null
System.out.println("--------------------------");
System.out.println(map.containsKey(1));//true,判断是否存在该key
System.out.println(map.containsKey(2));//false
System.out.println("-------------------------");
System.out.println(map.containsValue(1));//false,判断是否存在该value
System.out.println(map.containsValue("南瓜"));//true
System.out.println("-------------------------");
System.out.println(map.isEmpty());//false,判断是否空
System.out.println("----------------------------");
System.out.println(map.size());//1,返回元素数量(键值对)
System.out.println("----------------------------");
map.put("土豆","999");
Set set = map.keySet();//返回键值集合
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next().toString());
}
System.out.println("-----------------------------");
Collection collection = map.values();//返回value集合的Collection对象
System.out.println(collection);
for (Object i : collection) {
System.out.println(i.toString());
}
System.out.println("-------------------------------");
for (Object s:map.keySet()) {
System.out.println(s);
System.out.println(map.get(s));
}