A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐文豪 中级黑马   /  2015-5-26 22:45  /  252 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
        int [] arr = { 37, 92, 54, 18, 76};

       
//        第一种方法
        for (int x = 0; x < arr.length; x++) {
                if (arr[x] == 18) {
                        System.out.println("18的索引值是:"+x);
                }
        }
//        第二种方法
        System.out.println(Arrays.toString(arr).indexOf("18"));
第二种方法 为什么输出的是13?  这样做行不行?  还有别的什么方法吗?

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

4 个回复

倒序浏览
可以用二分查找法那样更有效率啊
回复 使用道具 举报
Amu 发表于 2015-5-26 22:47
可以用二分查找法那样更有效率啊

用二分要先排序   排完序之后数组跟原来的都乱了   角标位置都变了
回复 使用道具 举报
使用System.out.println(Arrays.toString(arr));这个方法获得是一个字符串,[37, 92, 54, 18, 76],jvm会认为[是一个字符,逗号是一个字符,空格也是一个字符,你查找18这个字符,jvm就会查找到1
这个字符第一次出现的位置,然后返回了
回复 使用道具 举报
这样肯定不行的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马