Java集合<一>

     Java的集合大致可分为:Set、List和Map三种体系。从JDK1.5以后,Java又增加了Queue体系集合。
     为了保存数量不确定的数据,以及保存具有映射关系的数据,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 {
      private  String  name  ;
      private   int   age  ;

      public  Student() {
         super  ();
         //  TODO  Auto-generated constructor stub
    }

      public  Student(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   "[name="  name  +  ", age="  +  age   "]"  ;
    }
}
/* 创建集合、遍历集合、输出结果 */
import  java.util.ArrayList;
import  java.util.Collection;
import  java.util.Iterator;

public   class  ArrayList2 {
      public   static   void  main(String[] args) {
         // 创建集合
        Collection c =  new  ArrayList();
         // 创建元素对象
       Student s1 =  new  Student( "AAA"  , 20);
       Student s2 =  new  Student( "BBB"  , 20);
       Student s3 =  new  Student( "XXX"  , 20);
       Student s4 =  new  Student( "YYY"  , 20);
         // 添加对象
        c.add(s1);
        c.add(s2);
        c.add(s3);
        c.add(s4);
         // 遍历集合
         /* 方法一、通过Object[]数组进行遍历 */
       Object[] obj = c.toArray();
         for  ( int  i = 0; i < obj.  length ; i++) {
           Student stu = (Student) obj[i];   
             // String str = (String) obj[i];     //不能直接将Student对象转换为String类型,否则将会报错。
           System.  out  .println(stu);
       }


        System.  out  .println( "----------------------"  );


         /* 方法二、通过Iterator进行遍历 */
        Iterator it = c.iterator();
         while  (it.hasNext()) {
           System.  out  .println(it.next());
       }

    }
}

输出结果:
[name=AAA, age=20]
[name=BBB, age=20]
[name=XXX, age=20]
[name=YYY, age=20]
----------------------
[name=AAA, age=20]
[name=BBB, age=20]
[name=XXX, age=20]
[name=YYY, age=20]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值