张大胖!啥是集合啊?
我先问你,数组是有固定长度的对不对?比如说100长度的数组,那么我后期想要插入120个数据呢,那是不是无法应对我的需求了呢?所以说需要一个灵活的容器,集合呢,就是相当于一个动态的数组,也就是java的集合类!
先看一下集合类的Collection接口,这个接口提供了很多的方法,添加,删除,判断是否为空等,还有重要的遍历功能的迭代器
Collection接口之list接口
废话不多说,直接上代码样例不就完了!好,整!
list接口其实是有俩个子类,ArrayList和LinkedList,区别在哪呢?区别在于Arraylist的运行方式更适合于数据的查找,LinkedList便于数据的更新和删除操作。其实语法都是一模一样的,大家在写代码的时候可以根据需要来选择使用那个list
public class Dome {
public static void main(String[] args) {
List list =new ArrayList();
list.add("可以说被安排的明明白白1");
list.add("可以说被安排的明明白白2");
list.add("可以说被安排的明明白白3");
list.add("可以说被安排的明明白白3");
list.remove(1); //删除索引为1的数据,也就是可以说被安排的明明白白2这句话被删除了
list.add(1,"安排的 明白了?");//又重新想索引1的位置添加一句话
list.set(1,"安排的 明白了?set");//又将索引为1的值改了一下
list.add("重复重复");
list.add("重复重复");
list.add("重复重复");//还可以添加重复的值
list.add(null);//还可以插入空值
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
System.out.println(list.size()); //输入有集合的大小,也就是可以理解为有多少个索引
最后运行结果
可以说被安排的明明白白1
安排的 明白了?set
可以说被安排的明明白白3
可以说被安排的明明白白3
重复重复
重复重复
重复重复
null
8
Iterator 迭代器
Iterator 迭代器呢,其实就是方便于遍历集合当中的元素来使用的一个抽象接口,可以使用语法
Iterator i = list.terator(); 来返回一个迭代器对象~
然后在使用
hasNext():如果有可迭代的元素,就返回true,没有就false
next():返回迭代的下一个元素。
看一段小代码:
public class Dome {
public static void main(String[] args) {
List list = new ArrayList();
list.add("可以说被安排的明明白白1");
list.add("可以说被安排的明明白白2");
list.add("可以说被安排的明明白白3");
list.add("可以说被安排的明明白白3");
Iterator it = list.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
}
}
\\运行结果:
可以说被安排的明明白白1
可以说被安排的明明白白2
可以说被安排的明明白白3
可以说被安排的明明白白3
Set接口
TreeSet
看一下这个转载的文章吧,我觉得比我写的好多了,哈哈
https://blog.csdn.net/jinhuoxingkong/article/details/51191106
HashSet
转载地址:
https://jingyan.baidu.com/article/48206aead61355216bd6b34a.html
MAP
先连接下什么叫 键值映射
相声这个key对应 老郭这个value ,等等一一对应,可以理解为,相声就是个键也就是key,郭德纲就是value
相声 ~ 郭德纲
唱歌 ~ 陈奕迅
小品 ~ 宋小宝
public class Dome {
public static void main(String[] args) {
Map map = new HashMap();// HashMap散列,还有一种是TreeMap(有序的集合排放),一般最常用的是第一种
map.put("24", "张大胖"); // put方法是通过键值保存到集合中
map.put("唱歌", "张大胖");
map.put("吃饭", "洗澡");
map.put(1, "哈哈哈");
map.put(null, null);
Set set = map.keySet();
Iterator in = set.iterator();
while (in.hasNext()) {
Object ojb = in.next();
System.out.println(map.get(ojb));
}
}
}
运行结果:
洗澡
null
张大胖
哈哈哈
张大胖
如果是用TreeMap的话,就会有序的显示出来了~
说一说集合使用的场景特点吧~
1.list关心的是索引,每一个元素有一个编号。
2.set关心的是唯一性,不让重复。
3.Map关心的是唯一的key