黑马程序员-----集合框架工具类使用(第二篇)

本文介绍了Java中Collections工具类的使用方法,包括数组与集合的转换技巧,并演示了如何利用TreeSet存储自定义对象及排序策略。同时,还探讨了高级for循环、方法的可变参数等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.工具类collections的使用

//Arrays里面操作数组工具类,里面都是静态方法。

//注意:将数组变成集合,不可以使用集合的增删方法,数组的长度固定。

//如果数组中的元素是基本数据类型,那么会将数组作为集合中的元素存在。

 

2.集合变数组

2.1.指定类型的数组到底要定义多长呢?

       当指定类型的数组长度小于了集合的size,会新创一个数组,长度为集合的size

       如果大于集合的size,不会创建数组,使用原数组。

2.2.为什么要集合变数组,为了限定对元素的操作;

应用实例如下:

import java.util.*;

class Student implements Comparable
{
       private String name;
       private int age;
       Student(String name,int age)
       {
              this.name=name;
              this.age=age;
       }
       public String getName()
       {

              return name;
       }
       public int getAge()
       {
              return age;
       }
       //重写Comparable中的compareTo 方法,对象存储时自定义的比较方法
        public int  compareTo(Object obj)
       { 
              if(!(obj instanceof Student))
                     throw new RuntimeException("不是学生对象");
              Student s=(Student)obj;
//            System.out.println(this.age+"---"+s.age);
              if(this.age<s.age) 

                    return 1;
              if(this.age==s.age)
                     return this.name.compareTo(s.name);
              return -1;
       }
}
class TreeSetDemo
{
       public static void main(String[] args) 
       {
             TreeSet<Student> ts=new TreeSet<Student>();
              //定义treeset类并传入比较器对象。
               TreeSet<Student> ts2=new TreeSet<Student>(new Mycompare());
             ts.add(new Student("java01",22));
             ts.add(new Student("java02",19));
             ts.add(new Student("java0234",19));
             ts2.add(new Student("java999",11)); 
             ts2.add(new Student("java88",12));      
	     ts2.add(new Student("ja88",12));
             Iterator it=ts.iterator(); 
             Iterator it2=ts2.iterator();
              while(it.hasNext())
              {
                     Student s=(Student)it.next();
                     System.out.println(s.getName()+"--"+s.getAge());

              }      
              while(it2.hasNext())
              {
                     Student s=(Student)it2.next();
                     System.out.println(s.getName()+"--"+s.getAge());
              }      
       }
}
//通过定义比较器来实现具备比较性。
class Mycompare implements Comparator
{
       //重写comparetor的compare方法,两个比较对象
       public int compare(Object  b1,Object b2)
       {
              Student s1=(Student)b1;
              Student s2=(Student)b2;
              int num=s1.getName().compareTo(s2.getName());
              if(num==0)
              {
                     return ((Integer)s1.getAge()).compareTo(new Integer(s2.getAge()));
              }
              return num;
       }
}


3.高级for循环

对集合进行遍历,只能获取集合中的元素,不能对其操作

高级for循环,必须要有遍历的目标,遍历数组的时候建议使用传统for

ArrayList();

forString sa1

{

System.out.println(s);
}

4.方法的可变参数

在使用时,可变参数放在参数列表的最后面

 

5.StaticImport静态导入。

当类重名是,要指定具体的包名。

当方法重名时,指定所属的对象或者类。

import static java.util.Arrays.*//导入的是Arrays中静态成员

import static java.lang.System.*;//导入了System类中的所有静态成员。

 

6.System

获取系统属性信息:properties getProperties();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值