Java之路---Day15(Collection类)
2019-11-02 16:01:21来源:博客园 阅读 ()
Java之路---Day15(Collection类)
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 }
原文链接:https://www.cnblogs.com/hpcz190911/p/11780327.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash