java中 length 、 length() 与size()

目录

 1、length表示属性,不是方法

 2. length()表示方法,是String类对象的一个成员方法,用于求String实体内容的长度

 3. size()方法,是List集合的一个方法

总结:length——数组的属性;length()——String的方法;size()——集合的方法;


 1、length表示属性,不是方法

               length绝大部分时候用于数组, 是数组的一个属性值,用于求数组长度(查阅JDK文档发现length只在某些类中有其他的特殊作用,比如在MidiMessage中表示MIDI 消息中的字节数,包括状态字节和任何数据字节;在OptionalDataException中表示当前缓冲区中可供读取的原始数据的字节数。)

 
        /**
         * 数组用属性length求长度
         */
        int[] nums = {1, 2, 3, 5};
        int length2 = nums.length;
        String[] str3 = {"ag", "iaug", "365"};
        int length3 = str3.length;
        char[] ss = {'3', 's'};
        int length4 = ss.length;

    

   2. length()表示方法,是String类对象的一个成员方法,用于求String实体内容的长度

 /**
         * String类对象用成员方法length()求长度
         */
        String str = "laghasilg";
        int length = str.length();
        String str2 = new String("ieur");
        int length1 = str2.length();

    进入length()方法看一下实现

private final char value[];
 
public int length() {
        return value.length;
    }

      注释中的解释是
      @return the length of the sequence of characters represented by this object.
即由该对象所代表的字符序列的长度,所以归根结底最后要找的还是length这个底层的属性;

3. size()方法,是List集合的一个方法

public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    System.out.println("这个list的长度为:" + list.size());
}

     在List的方法中,是没有length()方法的

     看一段ArrayList的源码

private final E[] a;
 
ArrayList(E[] array) {
       if (array==null)
             throw new NullPointerException();
       a = array;
}
 
public int size() {
       return a.length;
}

      由这段就可以看出list的底层实现其实就是数组,size()方法最后要找的其实还是数组的length属性;
     另外,除了List,Set和Map也有size()方法,所以准确说size()方法是针对集合而言。

总结:
length——数组的属性;
length()——String的方法;
size()——集合的方法;

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 2集合框架图  集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。  抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。  实现类:8个实现类(实线表示),对接口的具体实现。  在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。  · Collection 接口是一组允许重复的对象。  · Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。  · List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。  · Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map不能有重复的key。拥有自己的内部排列机制。  · 容器的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。  Java 2简化集合框架图  集合接口  1.Collection 接口  用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。  (1) 单元素添加、删除操作:   boolean add(Object o):将对象添加给集合   boolean remove(Object o): 如果集合有与o相匹配的对象,则删除对象o  (2) 查询操作:   int size() :返回当前集合元素的数量   boolean isEmpty() :判断集合是否有任何元素   boolean contains(Object o) :查找集合是否含有对象o

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值