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);
}
}
這是我第一寫博客 希望大家互相交流 有什麼問題大家給我提出來 謝謝