Java集合
集合与数组
数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。
集合:(只能存储对象,对象类型可以不一样)的长度可变(动态的数组),可在多数情况下使用。
集合的分类:
在java集合中,集合分了两个大的接口,分别为:collection接口和map接口。
collection接口又分为:list接口和set接口。分别由不同的子类来实现。
集合的方法:
我先创建一个arraylist对象,用arraylist来说明一下集合里面的基本方法:
collection coll = new arraylist();
(1)、size()方法:返回集合中元素个数
system.out.println(coll.size());
(2)、add(object obj):向集合中添加一个元素(注:现在我没有使用泛型,所以不同类型的数据都能添加到集合中)
coll.add("aa"); coll.add(new date()); coll.add(123); coll.add('b');
(3)、addall(collection coll):将形参coll中包含的所有元素添加到当前集合中
collection coll1 = arrays.aslist(1,2,3); coll.addall(coll1);
这里是将coll1集合里面的元素全部添加到coll集合当中。
(4)、isempty():判断集合是否为空,返回true 或者 false
system.out.println(coll.isempty());
(5)、clear():清空集合元素
coll.clear();
(6)、contains(object obj):判断集合是否包含指定的obj元素,如果包含,返回true,否则返回flase
boolean b1 = coll.contains("aa"); system.out.println(b1);
(7)、containsall(collection coll):判断当前集合是否包含coll中所有的元素
collection coll2 = new arraylist(); coll2.add(123); coll2.add('b'); boolean b2 = coll.containsall(coll2); system.out.println(b2);
这里是coll里面的元素是否包含coll2集合里面的全部元素,若包含全部元素,则返回true,否则返回false。
(8)、retainall(collection coll):求当前集合与coll的共有的元素,返回给当前集合(就相当于数学的交集)
coll.retainall(coll2); system.out.println(coll);
(9)、remove(object obj):删除集合中的obj元素。若删除成功,返回true;否则返回false。
boolean b3 = coll.remove(123);
(10)、removeall(collection coll):从当前集合中删除包含在coll中的元素。(相当于数学集合的差)
coll.removeall(coll2);
(11)、toarray():将集合转化为数组
object[] obj = coll.toarray(); for(int i=0;i<obj.length;i++){ system.out.println(obj[i]); }
集合的遍历方法:
collection接口的遍历方法:
方法一:使用迭代器iterator实现集合的遍历
collection coll = new arraylist(); coll.add(123); coll.add(456); coll.add(789); coll.add("aa"); //iterator:返回一个iterator接口实现类的对象,迭代器iterator实现集合的遍历 iterator i = coll.iterator(); while(i.hasnext()){ system.out.println(i.next()); }
方法二:使用增强for循环实现集合(数组)的遍历
collection coll = new arraylist(); coll.add(123); coll.add(456); coll.add(789); coll.add("aa"); //增强for循环实现集合的遍历 for(object i:coll){ system.out.println(i); } string[] str = new string[]{"aa","bb","cc"}; //遍历的类型 +变量 :遍历的数组 for(string i:str){ system.out.println(i); }
map接口的遍历方法:
(1)、set keyset():遍历 key 集
//遍历 key 集 set set = map.keyset(); for(object obj1 : set){ system.out.println(obj1); }
(2)、collection values():遍历value 集
//遍历value 集 collection values = map.values(); iterator i = values.iterator(); while(i.hasnext()){ system.out.println(i.next()); }
(3)、set entryset():遍历"key-value"对
//遍历"key-value"对 //方式一 set set1 = map.keyset(); for(object obj2 : set1){ system.out.println(obj2 + "---->"+map.get(obj2)); } //方式二: set set3 = map.entryset(); for(object obj3 : set3){ map.entry entry = (map.entry) obj3; // system.out.println(entry.getkey() + "---->" + entry.getvalue()); system.out.println(entry); }