1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解)
2.学习集合从Collection开始,所有集合都继承了他的方法
集合结构如图:
主要学习Collection中的
add()方法
向集合中添加元素
Collection<String> list = new ArrayList<>(); //父类引用指向子类对象 list.add("a"); list.add("a"); list.add("b"); list.add("a");
-----------------------------------------------------------------------------------------------------------
remove()方法
移除集合中的元素
list.remove("a");
注意:Collection接口中remove()方法只可以传递固定的元素,不可以传索进去,只是子类重写remove()方法的功能
-----------------------------------------------------------------------------------------------------------
clear()方法
清空集合
list.clear();
-----------------------------------------------------------------------------------------------------------
size()方法
获取集合的长度
list.size();
字符串的长度是length() 数组长度是length属性 不要混淆
-----------------------------------------------------------------------------------------------------------
contains()方法
包含 传入一个值检测集合中是否包含这个元素 返回值Boolean类型
通常用来ArrayList集合中去重复元素
-----------------------------------------------------------------------------------------------------------
toArray()方法
将集合转为数组
Interger[] arr = list.toArray(new Integer[0]);
将数组转为集合
List<Integer> list = Arrays.aslist(arr);
-----------------------------------------------------------------------------------------------------------
Collection<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("b"); list.add("a"); System.out.println(list); System.out.println(list.toString()); list.remove("a"); System.out.println(list); boolean b = list.contains("a"); System.out.println(b); String[] str = list.toArray(new String[0]); System.out.println(Arrays.toString(str)); List<String> list1 = Arrays.asList(str); list.clear(); System.out.println(list);
-----------------------------------------------------------------------------------------------------------
遍历集合(删除元素)
public static void main(String[] args) { fun2();
} /** * 普通for删除 */ public static void fun(){ ArrayList<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("b"); list.add("a"); for (int i = 0; i < list.size(); i++) { if(list.get(i).equals("a")){ //这里的i-- 是因为如果找到相连的元素 要把元素向前推一个索引 因为集合删除一个元素,这个元素的索引会被下一个元素覆盖,
//导致下一个元素没有被判读
list.remove(i--); } } System.out.println(list); } /** * 增强for删除 * 不可以删除元素 增强for没有记录list的索引不可以用来删除 */ public static void fun1(){ ArrayList<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("b"); list.add("a"); for (String string : list) { if(string.equals("b")){ list.remove("b"); } } System.out.println(list); } /** * 迭代器删除 这里要注意 要用一个值记录iterator.next的值 如果没有记录就不可删除相连的元素
*因为集合你在删除元素的时候索引会向前一个,在执行的时候就会跳到下一个索引了.这里需要理解 */ public static void fun2(){ ArrayList<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("b"); list.add("a"); Iterator<String> iterator = list.iterator(); while(iterator.hasNext()){ String string = iterator.next(); if(string.equals("a")){ iterator.remove(); } } System.out.println(list); }}
这是我第一写博客 希望大家互相交流 有什么问题大家给我提出来 谢谢
本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-01/139058.htm
以上就上有关Java基础Collection集合的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。