Java之路---Day15(Collection类)
2019-11-01-22:09:09
目录
1.Collection集合的概念
2.Collection集合常用方法
3.Iterator迭代器
4.增强for
5.Collection常用工具类
Collection集合的概念
●集合:集合是java中提供的一 种容器,可以用来存储多个数据。
集合和数组既然都是容器,它们有啥区别呢?
●数组的长度是固定的。集合的长度是可变的。
●数组中存储的是同-类型的元素.可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
Collection集合常用方法
package demosummary.collection;
/*
public boolean add(E e) :把给定的对象添加到当前集合中。
public void clear():清空集合中所有的元素。
public boolean remove(e e);把给定的对象在当前集合中删除。
public boolean contains(E e) ;判断当前集合中是否包含给定的对象。
public boolean isEmpty(): 判断当前集合是否为空。
public int size(): 返回集合中元素的个数。
public object[] toArray(): 把集合中的元素,存储到数组中。
*/
import java.util.ArrayList;
import java.util.Collection; public class CollectionTest {
public static void main(String[] args) { Collection<String> str = new ArrayList<>();
/*
public boolean add(E e) :把给定的对象添加到当前集合中
*/
boolean b = str.add("张三");
// System.out.println(b);//true
str.add("李四");
str.add("王五");
str.add("钱六");
str.add("赵七");
// System.out.println(str);//[张三, 李四, 王五, 钱六, 赵七]
/*
public boolean remove(e e);把给定的对象在当前集合中删除
*/ // boolean b1 = str.remove("李四");
// System.out.println(b1);//true
// System.out.println(str);//[张三, 王五, 钱六, 赵七] /*
public boolean contains(E e) ;判断当前集合中是否包含给定的对象
*/
boolean b2 = str.contains("孙八");
boolean b3 = str.contains("赵七");
System.out.println(b2);//false
System.out.println(b3);//true /*
public boolean isEmpty(): 判断当前集合是否为空。
*/ boolean b4 = str.isEmpty();
System.out.println(b4);//false /*
public int size(): 返回集合中元素的个数
*/
int b5 = str.size();
System.out.println(b5);// /*
public object[] toArray(): 把集合中的元素,存储到数组中
*/
Object[] obj = str.toArray();
System.out.println(obj[0]);//张三
for (Object o : obj) {
System.out.println(o);
} /*
public void clear():清空集合中所有的元素
*/
str.clear();
System.out.println(str);//[]
}
}
Iterator迭代器
Iterator接口
在程序开发中.经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口java.util. Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器。
迭代:
即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续再判断,如果还有就再取出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
Iterator接口的常用方法
public E next() :返回迭代的下一个元素。
public boolean hasNext() :如果仍有元素可以迭代,则返回true.
package demosummary.collection; import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class IteratorTest {
public static void main(String[] args) {
//创建一个集合
Collection<String> obj = new ArrayList<>();
//往集合中添加元素
obj.add("德玛");
obj.add("皇子");
obj.add("德邦");
obj.add("剑圣");
//使用多态方式来创建实现类对象
Iterator<String> iter = obj.iterator();
//使用while循环来迭代集合
while (iter.hasNext()){
String next = iter.next();//使用迭代器原理
System.out.println(next);
}
}
}
增强for
增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性
collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for
public interface Iterable<T>实现这个接口允许对象成为 "foreach"语句的目标。
增强for循环:用来遍历集合和数组
格式:
for(集合/数组的数据类型变量名:集合名/数组名){
sout(变量名);
}
package demosummary.collection; import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class IteratorTest {
public static void main(String[] args) {
//创建一个集合
Collection<String> obj = new ArrayList<>();
//往集合中添加元素
obj.add("德玛");
obj.add("皇子");
obj.add("德邦");
obj.add("剑圣");
//使用多态方式来创建实现类对象
Iterator<String> iter = obj.iterator();
//增强for
for (String str : obj) {
System.out.println(str);
}
}
}
Collection常用工具类
java.utils.collections 是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
public static vold shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
package demosummary.collection; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; /*
public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
*/
public class CollectionTools {
public static void main(String[] args) {
ArrayList<String> obj = new ArrayList<>();
//一开始学的添加元素的方法
// obj.add("德玛");
// obj.add("皇子");
// obj.add("德邦");
// obj.add("剑圣"); /*
public static <T> boolean addAll(Collection<T> C,T... elements) :往集合中添加一些元素。
*/ //用collection的方法来添加元素
Collections.addAll(obj,"德玛","皇子","德邦","剑圣");
System.out.println(obj);//[德玛, 皇子, 德邦, 剑圣] /*
public static void shuffle(List<?> 1list) :打乱顺序:打乱集合顺序。
*/
Collections.shuffle(obj);
System.out.println(obj);//[皇子, 德玛, 德邦, 剑圣] }
}
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
package demosummary.collection; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; public class CollectionTools02 {
public static void main(String[] args) {
//创建一个集合对象
ArrayList<Integer> obj = new ArrayList<>();
//使用collection方法添加元素
Collections.addAll(obj,4,3,2,1);
// public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
//默认是升序
Collections.sort(obj);
System.out.println(obj);//[1, 2, 3, 4] /*
public static <T> void sort(List<T> ist, Comparator<? super T> ) :将集合中元素按照指定规则排序。
*/
//创建一个集合对象
ArrayList<Person> obj01 = new ArrayList<>();
//往集合添加元素
obj01.add(new Person("德玛",18));
obj01.add(new Person("皇子",19));
obj01.add(new Person("德邦",20));
obj01.add(new Person("剑圣",18));
//输出原来集合的排序
System.out.println(obj01);
//使用collection的方法按照指定规则排序
Collections.sort(obj01, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
//按照大小来排序
int result = o1.getAge()-o2.getAge();
if (result==0){
result=o1.getName().charAt(0)-o2.getName().charAt(0);
}
return result;
}
});
System.out.println(obj01);
}
}
Java之路---Day15(Collection类)的更多相关文章
- java的collection类
collection来源于java.util包. Collection 接口常用的方法 size():返回集合中元素的个数 add(Object obj):向集合中添加一个元素 addAll(Coll ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- 【JAVA集合框架之工具类】
一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...
- java最全的验证类封装
package com.tongrong.utils; import java.util.Collection; import java.util.Map; import java.util.rege ...
- Java 集合系列 02 Collection架构
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO
(三)Java最重要的21个技术点和知识点之JAVA集合框架.异常类.IO 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享 ...
- Python之路,Day15 - Django适当进阶篇
Python之路,Day15 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣 ...
- 关于java同步包中ConcurrentLinkedQueue类的深入分析与理解
一,官方描写叙述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检 ...
随机推荐
- 负载均衡环境:nginx + 2tomcat
部署两个服务 安装两个tomcat,tomcat安装,参考:https://www.cnblogs.com/uncleyong/p/10742650.html 两个tomcat的端口要不一样(shut ...
- 09-赵志勇机器学习-k-means
(草稿) k-means: 1. 随机选取n个中心 2. 计算每个点到各个中心的距离 3. 距离小于阈值的归成一类. 4. 计算新类的质心,作为下一次循环的n个中心 5. 直到新类的质心和对应本次循环 ...
- 三星固态Dell版的960g的sm863a硬盘
smart参数 CrystalDiskMark测试 AS SSD 测试 HD Tune Pro测试 DiskGenius查看 总结: 按我的测试,性能比sm865的还好,不知道咋回事,按三星给的参数这 ...
- 小学四则运算口算练习app---No.4
今天主要是改了出题页中各个组件的位置以及时间的接收还有时间控制,代码如下:(但是存在一个问题 设置页面点击确定按钮进入出题界面时有时会闪退,未解决!) CalculatorActivity.clas ...
- 常用dos命令(4)
系统管理at 安排在特定日期和时间运行命令和程序shutdown立即或定时关机或重启taskkill结束进程(WinXPHome版中无该命令)tasklist显示进程列表(Windows XP Hom ...
- Java 内存分配(转)
Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性. 寄存器:JVM内部虚拟寄 ...
- 【java异常】org.springframework.web.util.NestedServletException: Handler processing failed;Can't connect to X11 window server using 'localhost:10.0' as the value of th
tomcat工程中创建二维码失败.抛出异常Can't connect to X11 window server using 'localhost:10.0' as the value of th 因为 ...
- MapReduce running in uber mode (jvm重用)
原文 http://blog.csdn.net/samhacker/article/details/15692003 yarn-site.xml 主要是这几个参数 - mapreduce.job.u ...
- pycharm的Structure中的图标含义
1.在使用pycharm的Structure时可以看到有这些图标.图标上的字母是简写,具体含义如下在pycharm中是自动补全的变量的类别 p:parameter 参数 m:method 方法 ...
- Struts CRUD
Struts CRUD 利用struts完成增删改查 思路: 1.导入相关的pom依赖(struts.自定义标签库的依赖) 2.分页的tag类导入.z.tld.完成web.xml的配置 3.dao层去 ...