集合的三大接口

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));
}

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^O^逝水流年^O^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值