Java集合<一>
2015-01-27 20:48
225 查看
Java的集合大致可分为:Set、List和Map三种体系。从JDK1.5以后,Java又增加了Queue体系集合。
为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于java.util包下。
Set集合类似一个罐子,把一个对象添加到Set集合时,Set集合无法记住添加这个元素的顺序,所以Set里的元素不能重复。
List集合像一个数组,它可以记住每次添加元素的顺序,只是List的长度可变。
Map集合也像一个罐子,只是它里面每项数据都由两个值组成。
对于Set、List和Map三种集合,最常用的实现类是:HashSet、ArrayList和HashMap。
![](https://img-blog.csdn.net/20150127204654125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2djb3VyYWdl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象引用变量);而集合里只能保存对象(实际也是保存对象的引用变量)。
Q1:为什么要出现集合类?
面向对象语言对事物的体现都是对象的形式,为了方便多个对象的操作,就必须对对象进行存储,集合就是存储对象最常用的一种方式。
Q2:集合和数组都是容器有哪些异同?
数组只能存储相同类型的对象,而且数组的长度确定不可变,数组可以存储基本数据类型也可以存储对象;
集合可以存储不同类型的对象,而且集合长度是可变的,集合只能存储引用数据类型。
集合使用操作步骤:
创建集合对象
创建元素对象
添加元素对象
遍历集合对象
判断集合对象中是否有元素(hasNext())
获取集合对象的下一个元素(Next())
遍历集合集合一般采用两种方法。一、先将集合转换为Object[]数组,然后遍历数组;二、直接采用Iterator迭代器。
示例:创建Student对象,包含Name和Age两个属性。然后创建一个集合用于存储Student的对象。然后遍历集合,输出集合对象。
/*创建Student类*/
public class Student
{
[align=left] private String name ;[/align]
[align=left] private int age ;[/align]
[align=left]
[/align]
public Student()
{
[align=left] super ();[/align]
// TODO Auto-generated
constructor stub
[align=left] }[/align]
[align=left]
[/align]
public Student(String name, int age)
{
[align=left] super ();[/align]
this .name =
name;
this .age =
age;
[align=left] }[/align]
[align=left]
[/align]
public String
getName() {
[align=left] return name ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setName(String
name) {
this .name =
name;
[align=left] }[/align]
[align=left]
[/align]
public int getAge()
{
[align=left] return age ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setAge( int age)
{
this .age =
age;
[align=left] }[/align]
[align=left]
[/align]
[align=left] @Override[/align]
public String
toString() {
return "[name=" + name + ",
age=" + age + "]" ;
[align=left] }[/align]
[align=left]}[/align]
/*创建集合、遍历集合、输出结果*/
[align=left]import java.util.ArrayList;[/align]
[align=left]import java.util.Collection;[/align]
[align=left]import java.util.Iterator;[/align]
[align=left]
[/align]
public class ArrayList2
{
public static void main(String[]
args) {
[align=left] // 创建集合[/align]
[align=left] Collection c = new ArrayList();[/align]
[align=left] // 创建元素对象[/align]
Student s1 = new Student("AAA" ,
20);
Student s2 = new Student("BBB" ,
20);
Student s3 = new Student("XXX" ,
20);
Student s4 = new Student("YYY" ,
20);
[align=left] // 添加对象[/align]
[align=left] c.add(s1);[/align]
[align=left] c.add(s2);[/align]
[align=left] c.add(s3);[/align]
[align=left] c.add(s4);[/align]
[align=left] // 遍历集合[/align]
[align=left] /* 方法一、通过Object[]数组进行遍历 */[/align]
[align=left] Object[] obj = c.toArray();[/align]
for (int i
= 0; i < obj. length; i++) {
[align=left] Student stu = (Student) obj[i]; [/align]
// String str =
(String) obj[i]; //不能直接将Student对象转换为String类型,否则将会报错。
[align=left] System. out .println(stu);[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left] System. out .println("----------------------" );[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left] /* 方法二、通过Iterator进行遍历 */[/align]
Iterator it =
c.iterator();
while (it.hasNext())
{
[align=left] System. out .println(it.next());[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]输出结果:[/align]
[align=left][name=AAA, age=20][/align]
[align=left][name=BBB, age=20][/align]
[align=left][name=XXX, age=20][/align]
[align=left][name=YYY, age=20][/align]
[align=left]----------------------[/align]
[align=left][name=AAA, age=20][/align]
[align=left][name=BBB, age=20][/align]
[align=left][name=XXX, age=20][/align]
[align=left][name=YYY, age=20][/align]
为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于java.util包下。
Set集合类似一个罐子,把一个对象添加到Set集合时,Set集合无法记住添加这个元素的顺序,所以Set里的元素不能重复。
List集合像一个数组,它可以记住每次添加元素的顺序,只是List的长度可变。
Map集合也像一个罐子,只是它里面每项数据都由两个值组成。
对于Set、List和Map三种集合,最常用的实现类是:HashSet、ArrayList和HashMap。
集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象引用变量);而集合里只能保存对象(实际也是保存对象的引用变量)。
Q1:为什么要出现集合类?
面向对象语言对事物的体现都是对象的形式,为了方便多个对象的操作,就必须对对象进行存储,集合就是存储对象最常用的一种方式。
Q2:集合和数组都是容器有哪些异同?
数组只能存储相同类型的对象,而且数组的长度确定不可变,数组可以存储基本数据类型也可以存储对象;
集合可以存储不同类型的对象,而且集合长度是可变的,集合只能存储引用数据类型。
集合使用操作步骤:
创建集合对象
创建元素对象
添加元素对象
遍历集合对象
判断集合对象中是否有元素(hasNext())
获取集合对象的下一个元素(Next())
遍历集合集合一般采用两种方法。一、先将集合转换为Object[]数组,然后遍历数组;二、直接采用Iterator迭代器。
示例:创建Student对象,包含Name和Age两个属性。然后创建一个集合用于存储Student的对象。然后遍历集合,输出集合对象。
/*创建Student类*/
public class Student
{
[align=left] private String name ;[/align]
[align=left] private int age ;[/align]
[align=left]
[/align]
public Student()
{
[align=left] super ();[/align]
// TODO Auto-generated
constructor stub
[align=left] }[/align]
[align=left]
[/align]
public Student(String name, int age)
{
[align=left] super ();[/align]
this .name =
name;
this .age =
age;
[align=left] }[/align]
[align=left]
[/align]
public String
getName() {
[align=left] return name ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setName(String
name) {
this .name =
name;
[align=left] }[/align]
[align=left]
[/align]
public int getAge()
{
[align=left] return age ;[/align]
[align=left] }[/align]
[align=left]
[/align]
public void setAge( int age)
{
this .age =
age;
[align=left] }[/align]
[align=left]
[/align]
[align=left] @Override[/align]
public String
toString() {
return "[name=" + name + ",
age=" + age + "]" ;
[align=left] }[/align]
[align=left]}[/align]
/*创建集合、遍历集合、输出结果*/
[align=left]import java.util.ArrayList;[/align]
[align=left]import java.util.Collection;[/align]
[align=left]import java.util.Iterator;[/align]
[align=left]
[/align]
public class ArrayList2
{
public static void main(String[]
args) {
[align=left] // 创建集合[/align]
[align=left] Collection c = new ArrayList();[/align]
[align=left] // 创建元素对象[/align]
Student s1 = new Student("AAA" ,
20);
Student s2 = new Student("BBB" ,
20);
Student s3 = new Student("XXX" ,
20);
Student s4 = new Student("YYY" ,
20);
[align=left] // 添加对象[/align]
[align=left] c.add(s1);[/align]
[align=left] c.add(s2);[/align]
[align=left] c.add(s3);[/align]
[align=left] c.add(s4);[/align]
[align=left] // 遍历集合[/align]
[align=left] /* 方法一、通过Object[]数组进行遍历 */[/align]
[align=left] Object[] obj = c.toArray();[/align]
for (int i
= 0; i < obj. length; i++) {
[align=left] Student stu = (Student) obj[i]; [/align]
// String str =
(String) obj[i]; //不能直接将Student对象转换为String类型,否则将会报错。
[align=left] System. out .println(stu);[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left] System. out .println("----------------------" );[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left] /* 方法二、通过Iterator进行遍历 */[/align]
Iterator it =
c.iterator();
while (it.hasNext())
{
[align=left] System. out .println(it.next());[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]输出结果:[/align]
[align=left][name=AAA, age=20][/align]
[align=left][name=BBB, age=20][/align]
[align=left][name=XXX, age=20][/align]
[align=left][name=YYY, age=20][/align]
[align=left]----------------------[/align]
[align=left][name=AAA, age=20][/align]
[align=left][name=BBB, age=20][/align]
[align=left][name=XXX, age=20][/align]
[align=left][name=YYY, age=20][/align]
相关文章推荐
- 黑马程序员-----java基础加强<一>
- JAVA集合专题 <一> List Map Set 用法和特性
- 黑马程序员——Java基础---集合<一>
- <Head First Java>集合与泛型
- <一>JAVA下载和环境变量的配置
- <一>JAVA下载和环境变量的配置
- Java基础--集合框架<一>
- java集合总结<一>
- <Java开发工具类一> -- StringUtils
- <JAVA8实战>学习笔记1-流与集合的区别
- JAVA基础学习--IO流总结<一>
- Java多态之重写<一>
- JAVA集合知识点汇总<一> List集合
- Java集合归纳-<一>集合概述
- 黑马程序员<java基础笔记一>
- 初识JAVA反射<一>_0626
- 常见java考试题与面试题<一>
- <java>No enclosing instance of type GraphicFrame is accessible. Must qualify the allocation with an
- JAVA高新技术学习<一>
- JAVA基础学习--网络编程<一>