码迷,mamicode.com
首页 > 编程语言 > 详细

【Java】集合_学习笔记

时间:2017-01-05 07:39:08      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:images   move   重复   ref   添加   with   变量   app   rem   

一、集合

  1、集合类也称容器类,主要负责保存、盛装其他数据。

  2、集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组)。

  3、Java5后提供一些多线程安全的集合类,放在java.util.concurrrent。(utility的缩写,意为多用途的,实用的)

  4、集合只能保存对象(实际是对象的引用,习惯称对象)。

  5、Java的集合主要由Collection和Map两个接口派生而出,Map接口的实现类用于保存关联数组,Set集合元素不可重复,通过元素本身访问,Map集合可以通过key值访问,List集合可以通过下标访问。

  技术分享技术分享

二、Collection接口

  1、Collection接口是Set、Queue、List接口的父接口,所以它的方法也可以操控着三个集合。

    a、boolean add(Object o):向指定集合里添加一个元素,指定集合对象因为这个方法改变,返回true。

    b、boolean addAll(Collection c):把集合c里的所有元素添加到指定集合里,指定集合对象因为这个方法改变,返回true。

    c、void clean():清除指定集合的所有元素,将集合长度变为0。

    d、boolean contains(Object o):返回集合里是否包含指定元素。

    e、boolean containsAll(Collection c):返回集合是否包含集合c里的所有元素。

    f、boolean isEmpty();返回集合是否为空,长度为0返回true,否则false。

    g、boolean remove(Object o):删除集合中的指定元素o,当集合中包含一个或多个元素o时,删除第一个符合条件的元素,返回true。

    h。boolean removeAll(Collection c):从集合里删除集合c包含的所有元素,删除一个或一个以上的元素,返回true。

    i、boolean retainAll(Collection c):从集合里删除集合c以外的元素,指定集合对象因为这个方法改变,返回true。

    j、in size():返回集合里的元素个数、

    k、Object[] toArray():把集合转换为一个数组,集合元素变为对应数组元素。

  2、使用Foreach循环遍历集合元素  

  代码如下:

 1 import java.util.HashSet;
 2 import java.util.Objects;
 3 
 4 public class MyClass {
 5     public static void main(String[] args) {
 6         //HashSet()类应该是实现了Collection接口的一个类,否则不可能实例化
 7         Collection names = new HashSet();
 8         //添加的应该是引用,这里直接放字符串,是在常量池里?
 9         names.add("xiaoming");
10         names.add("xiaogang");
11         names.add("xiaoli");
12         for(Object theName_obj:names){
13             String theName = (String) theName_obj;
14             System.out.println(theName);
15             //下面这句话会抛出ConcurrentModificationException,因为theName是一个迭代变量,不是元素本身
16             if(theName.equals("xiaoli")){
17                 names.remove(theName);
18             }
19         }
20     }
21 }

 

   运行结果:

 1 xiaoming
 2 xiaoli
 3 Exception in thread "main" java.util.ConcurrentModificationException
 4     at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
 5     at java.util.HashMap$KeyIterator.next(HashMap.java:1461)
 6     at com.example.MyClass.main(MyClass.java:15)
 7     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 8     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 9     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10     at java.lang.reflect.Method.invoke(Method.java:498)
11     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
12 
13 Process finished with exit code 1

 

【Java】集合_学习笔记

标签:images   move   重复   ref   添加   with   变量   app   rem   

原文地址:http://www.cnblogs.com/Hystudio-lzu/p/6250674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!