2019-11-01-22:09:09
Ŀ¼
1.Collection集合的概念
2.Collection集合常用方法
3.Iterator迭代器
4.增强for
5.Collection常用工具类
Collection集合的概念
●集合:集合是java中提供的一 种容器,可以用来存储多个数据。
集合和数组既然都是容器,它们有啥区别呢?
●数组的长度是固定的。集合的长度是可变的。
●数组中存储的是同-类型的元素.可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
Collection集合常用方法
1 package demosummary.collection; 2 /* 3 public boolean add(E e) :把给定的对象添加到当前集合中。 4 public void clear():清空集合中所有的元素。 5 public boolean remove(e e);把给定的对象在当前集合中删除。 6 public boolean contains(E e) ;判断当前集合中是否包含给定的对象。 7 public boolean isEmpty(): 判断当前集合是否为空。 8 public int size(): 返回集合中元素的个数。 9 public object[] toArray(): 把集合中的元素,存储到数组中。 10 */ 11 import java.util.ArrayList; 12 import java.util.Collection; 13 14 public class CollectionTest { 15 public static void main(String[] args) { 16 17 Collection<String> str = new ArrayList<>(); 18 /* 19 public boolean add(E e) :把给定的对象添加到当前集合中 20 */ 21 boolean b = str.add("张三"); 22 // System.out.println(b);//true 23 str.add("李四"); 24 str.add("王五"); 25 str.add("钱六"); 26 str.add("赵七"); 27 // System.out.println(str);//[张三, 李四, 王五, 钱六, 赵七] 28 /* 29 public boolean remove(e e);把给定的对象在当前集合中删除 30 */ 31 32 // boolean b1 = str.remove("李四"); 33 // System.out.println(b1);//true 34 // System.out.println(str);//[张三, 王五, 钱六, 赵七] 35 36 /* 37 public boolean contains(E e) ;判断当前集合中是否包含给定的对象 38 */ 39 boolean b2 = str.contains("孙八"); 40 boolean b3 = str.contains("赵七"); 41 System.out.println(b2);//false 42 System.out.println(b3);//true 43 44 /* 45 public boolean isEmpty(): 判断当前集合是否为空。 46 */ 47 48 boolean b4 = str.isEmpty(); 49 System.out.println(b4);//false 50 51 /* 52 public int size(): 返回集合中元素的个数 53 */ 54 int b5 = str.size(); 55 System.out.println(b5);//5 56 57 /* 58 public object[] toArray(): 把集合中的元素,存储到数组中 59 */ 60 Object[] obj = str.toArray(); 61 System.out.println(obj[0]);//张三 62 for (Object o : obj) { 63 System.out.println(o); 64 } 65 66 /* 67 public void clear():清空集合中所有的元素 68 */ 69 str.clear(); 70 System.out.println(str);//[] 71 } 72 }
Iterator迭代器
Iterator接口
在程序开发中.经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util. Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。
迭代:
即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
Iterator接口的常用方法
public E next() :返回迭代的下一个元素。
public boolean hasNext() :如果仍有元素可以迭代,则返回true.
1 package demosummary.collection; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Iterator; 6 7 public class IteratorTest { 8 public static void main(String[] args) { 9 //创建一个集合 10 Collection<String> obj = new ArrayList<>(); 11 //往集合中添加元素 12 obj.add("德玛"); 13 obj.add("皇子"); 14 obj.add("德邦"); 15 obj.add("剑圣"); 16 //使用多态方式来创建实现类对象 17 Iterator<String> iter = obj.iterator(); 18 //使用while循环来迭代集合 19 while (iter.hasNext()){ 20 String next = iter.next();//使用迭代器原理 21 System.out.println(next); 22 } 23 } 24 }
增强for
增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性
collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
public interface Iterable<T>实现这个接口允许对象成为 "foreach"语句的目标。
增强for循环:用来遍历集合和数组
格式:
for(集合/数组的数据类型变量名:集合名/数组名){
sout(变量名);
}
1 package demosummary.collection; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Iterator; 6 7 public class IteratorTest { 8 public static void main(String[] args) { 9 //创建一个集合 10 Collection<String> obj = new ArrayList<>(); 11 //往集合中添加元素 12 obj.add("德玛"); 13 obj.add("皇子"); 14 obj.add("德邦"); 15 obj.add("剑圣"); 16 //使用多态方式来创建实现类对象 17 Iterator<String> iter = obj.iterator(); 18 //增强for 19 for (String str : obj) { 20 System.out.println(str); 21 } 22 } 23 }
Collection常用工具类
java.utils.collections 是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
public static vold shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
1 package demosummary.collection; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Collections; 6 7 /* 8 public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。 9 public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。 10 public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。 11 public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。 12 */ 13 public class CollectionTools { 14 public static void main(String[] args) { 15 ArrayList<String> obj = new ArrayList<>(); 16 //一开始学的添加元素的方法 17 // obj.add("德玛"); 18 // obj.add("皇子"); 19 // obj.add("德邦"); 20 // obj.add("剑圣"); 21 22 /* 23 public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。 24 */ 25 26 //用collection的方法来添加元素 27 Collections.addAll(obj,"德玛","皇子","德邦","剑圣"); 28 System.out.println(obj);//[德玛, 皇子, 德邦, 剑圣] 29 30 /* 31 public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。 32 */ 33 Collections.shuffle(obj); 34 System.out.println(obj);//[皇子, 德玛, 德邦, 剑圣] 35 36 } 37 }
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
1 package demosummary.collection; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 7 public class CollectionTools02 { 8 public static void main(String[] args) { 9 //创建一个集合对象 10 ArrayList<Integer> obj = new ArrayList<>(); 11 //使用collection方法添加元素 12 Collections.addAll(obj,4,3,2,1); 13 // public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。 14 //默认是升序 15 Collections.sort(obj); 16 System.out.println(obj);//[1, 2, 3, 4] 17 18 /* 19 public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。 20 */ 21 //创建一个集合对象 22 ArrayList<Person> obj01 = new ArrayList<>(); 23 //往集合添加元素 24 obj01.add(new Person("德玛",18)); 25 obj01.add(new Person("皇子",19)); 26 obj01.add(new Person("德邦",20)); 27 obj01.add(new Person("剑圣",18)); 28 //输出原来集合的排序 29 System.out.println(obj01); 30 //使用collection的方法按照指定规则排序 31 Collections.sort(obj01, new Comparator<Person>() { 32 @Override 33 public int compare(Person o1, Person o2) { 34 //按照大小来排序 35 int result = o1.getAge()-o2.getAge(); 36 if (result==0){ 37 result=o1.getName().charAt(0)-o2.getName().charAt(0); 38 } 39 return result; 40 } 41 }); 42 System.out.println(obj01); 43 } 44 }
来源:博客园
作者:CeliaTodd
链接:https://www.cnblogs.com/hpcz190911/p/11780327.html