Java集合

六月ゝ 毕业季﹏ 提交于 2020-01-01 15:54:34

集合与数组

数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。

集合:(只能存储对象,对象类型可以不一样)的长度可变(动态的数组),可在多数情况下使用。

 

集合的分类:

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!