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

时间:2021-12-07 12:01:52

------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();