黑马程序员_java集合框架工具类及JDK1.5新特性

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 

----------------------


java为使用者提供了操作集合与数组的工具类分别为Collections是集合对象的工具类,提供了操作集合的工具方法和Arrays是数组的工具类,提供了对数组的工具方法

这两个工具类的特点是类中的方法都是静态的,不需要创建对象,直接使用类名调用即可。

Collection与Collections的区别:

Collection:是集合框架的一个顶层接口,它的内部定义的是单列集合的共性方法,它有两个子接口

Set: 是一个不能存储重复元素的集合。

List:对元素都有索引,是一个有序的可重复的集合。

Collections:是集合框架的工具类,它的内部定义的都是静态的方法。可以对List集合进行操作如排序,二分查找等,还可以使用该工具类将多线程中不安全的集合变成线程安全的集合。

Collections中的方法:

                sort(List <T> list):根据元素的自然顺序对指定列表按升序进行排序

                sort(List <T> list, Comparator<?super T> c):根据指定的比较器排序

                shuffle(List<?> list):对指定列表随机置换

                reverse(List<?> list): 反转指定列表中元素的顺序。

                fill(List<? super T> list,T obj): 使用指定元素替换指定列表中的所有元素

Collections中二分查找的原理:

集合变数组:

Collection接口中的toArray方法,将集合变成数组的原因:为了限定对元素的操作,不需要对元素进行增删操作。

import java.util.*;

class  CollectionToArray

{

    public static void main(String[]args)

    {

       ArrayList<String>al = new ArrayList<String>();

       al.add("1231");

       al.add("32c2");

       al.add("a1c3");

       String[] arr= al.toArray(new String[al.size()]);

       System.out.println(Arrays.toString(arr));

}

}注意:当指定类型的数组长度小于集合的size,则内部会创建一个新的数组,长度为集合的size;

       当指定类型的数组长度大于集合的size,则不会创建新的数组而使用传递进来的数组。

Arrays工具类:用于操作数组的工具类。

将数组变成List集合的方式:asList()方法

将数组变成集合的好处:可以使用集合的思想和方法来操作数组中的元素。

public class ArraysTolist{

    public static void main(String[]args)

    {

       String[] string={"zxcv","asdf","qwer"};

       List<String>list=Arrays.asList(string);

       System.out.println(list);

    }

}

注意:将数组变成集合后,由于数组长度是固定的,所以不可以使用集合的增删方法,但可以使用集合的其他方法。

      如果数组中的元素都是对象,变成集合时数组中的元素就直接转换成集合中的元素

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

JDK1.5的新特性:

1.增强for循环

能对集合进行遍历,且能获取集合的元素,但是不能对集合进行操作。

        格式:

for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)

{

   

}

    增强for循环与传统for循环的区别:

    增强for循环在使用时必须具有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for,因为传统for可以定义脚标

2.可变参数

       public class ParamDemo

{

           public static void main(String[]args) {

           method("hello", 1,2,3,6);

method("12",4,5,6,6);//传入的数据可变

           }

           public static void method(String s,int...array/*可变参数*/)

           {

      

           }

}

    注意:定义时可变参数要定义在参数列表的最后。

3.静态导入

    import java.xx.*;

    导入的是xx包中的所有类

import static java.xx.yy.*;

导入的是xx包中yy类中的所有静态成员。

静态导入的好处是,简化了代码的书写。


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 
----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值