集合:集合是Java提供的一種容器,能夠用來存儲多個數據;java
集合與數組的區別:集合的長度是可變的,數組的長度是固定的數組
集合中存儲的數據必須是引用類型數據;ide
ArrayList回顧:this
public class Person { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
import java.util.ArrayList; public class Demo1 { public static void main(String[] args) { ArrayList<Integer> arr=new ArrayList<>(); arr.add(1); arr.add(2); arr.add(3); arr.add(4); arr.add(5); for (int i = 0; i < arr.size(); i++) { System.out.println(arr.get(i));//1 2 3 4 5 } ArrayList<Person> arr1=new ArrayList<>(); arr1.add(new Person("張三", 18)); arr1.add(new Person("李四", 18)); arr1.add(new Person("王二", 18)); for (int i = 0; i < arr1.size(); i++) { System.out.println(arr1.get(i)); } /* Person [name=張三, age=18] Person [name=李四, age=18] Person [name=王二, age=18]*/ System.out.println(arr1.size());//3 arr1.clear();//清空集合 System.out.println(arr1.size());//0 } }
collection接口是集合的根接口,研究它應該經過他的實現類spa
ArrayList集合實現了List接口,List接口繼承了Collection接口,所以能夠 經過ArrayList研究Collection的部分方法:code
import java.util.ArrayList; import java.util.Collection; public class Demo3 { public static void main(String[] args) { fun1(); fun2(); fun3(); } private static void fun3() { // 刪除元素 Collection<String> c=new ArrayList<>(); c.add("abc"); c.add("def"); c.add("ghi"); boolean b=c.remove("abc"); System.out.println(b);//true,看是否刪除成功,若是元素不存在,則刪除失敗,若是有重複元素,則刪除第一個 System.out.println(c);//[def, ghi] } private static void fun2() { // 獲得一個存儲對象的數組 Collection<String> c=new ArrayList<>(); c.add("abc"); c.add("defg"); c.add("123"); Object[] obj=c.toArray(); for (int i = 0; i < obj.length; i++) { System.out.println(obj[i]); /* abc defg 123*/ } } private static void fun1() { //利用多態建立Collection類型變量 Collection<String> c=new ArrayList<>(); c.add("abc");//add()方法添加元素 c.add("efg"); boolean b=c.contains("abc");//contains方法,判斷集合是否包含某元素,返回布爾類型 System.out.println(b);//true System.out.println(c.size());//2//size()方法:集合的大小,存入元素個數 c.clear();//清空集合中元素,集合自己仍然存在,就像抽屜裏的東西拿走了,抽屜仍然存在 System.out.println(c.size());//0 } }
迭代器:java有不少的集合,存的方式是不同的,咱們要取出這些元素,能夠經過一種通用的方式得到;對象
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class Demo4 { public static void main(String[] args) { Collection c=new ArrayList<>(); c.add("abc"); c.add("jfhjkb"); c.add(new Person("張三",18)); //迭代器 Iterator it=c.iterator(); while (it.hasNext()) { Object obj = (Object) it.next(); System.out.println(obj); } } }
加強性for循環:blog
格式:for(數據類型 變量名:數組或者集合){syso(變量名)}繼承
還以上一個例子爲例:接口
public class Demo4 { public static void main(String[] args) { Collection c=new ArrayList<>(); c.add("abc"); c.add("jfhjkb"); c.add(new Person("張三",18)); //加強性for循環 for (Object object : c) { System.out.println(c); } /*[abc, jfhjkb, Person [name=張三, age=18]] [abc, jfhjkb, Person [name=張三, age=18]] [abc, jfhjkb, Person [name=張三, age=18]]*/ } }