先说一个idea编辑器的问题,编辑器的光标变成黑色光标无法移动,按一下insert键就好了。

数组是线性数据存储结构、它用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。本身是一种引用类型的数据、所以我们要使用数组就要首先声明、初始化他、而它的初始化的完成也就意味着此数组的大小将不再改变、而且具有初始值。即定义数组必须给定数组的大小。Java中的数组长度不变!存储的数据类型唯一
 
数组的引用存放在栈内、实际对象存放在堆内存中。
 
常用的方法可如下:
1.数组的定义和声明(必须给定数组大小!!!!!)
/*1.定义数组,必须规定数组的大小,优点:查询效率高  */

        //  Arrays.fill(数组名,值)主要是将数组中每个元素赋予相同的值,
// 该方法通过各种重载形式可完成任意类型的数组元素的替换
String[] s1 = new String[4];
Arrays.fill(s1, "wyy");
for (String s : s1
) {
System.out.println(s);
}
String s2[] = {"wyy", "wzz", "wxx"};
System.out.println(Arrays.toString(s2));//注意:直接输出s2只能得到数组的地址引用 String[] s3 = new String[]{"zyy", "zxx", "zww"};
System.out.println(Arrays.toString(s3)); //将字符串数组转化为字符串 int[] s5 = new int[]{7, 3, 2, 8, 9};

2.将数组转化为集合(set,list)

(1)转化为list

 /*2.将数组转化为ArrayList  Arrays.asList(数组)   */
List<String> list = new ArrayList<>(Arrays.asList(s2));
list.add("whh");
System.out.println("ArrayList是否包含:" + list.contains("whh"));

(2)转化为set

        Set<String> set = new HashSet<>(Arrays.asList(s2));
System.out.println("集合set是否包含:" + set.contains("wyy"));

(3)整型数组转化

特别注意,将整形数组转为集合,必须用原始类型。不能直接将int[]转化为集合、因为asList()方法的参数必须是对象。应该先把int[]转化为Integer[]。对于其他原始的类型的数组也是如此,必须先转换成相应的包装类类型数组。

Java是面向对象的编程语言,也就说一切皆为对象.可是那些int double 等八种数据类型却不是对象,这就与Java的一切皆是对象的思想相矛盾了,所以为了解决这个问题,Java就出现了包装类,把那些基本数据类型进行包装,让它成为了一个类,等用到的时候直接调用就可以了..因为集合的类型必须为对象,所以添加元素类型必须为原始类

public interface Set<E> extends Collection<E> 
       Integer[] integerArray = new Integer[s5.length];
for (int i = 0; i < integerArray.length; i++) {
integerArray[i] = s5[i];
}
Set<Integer> set1 = new HashSet<>(Arrays.asList(integerArray));
System.out.println(set1); //[2, 3, 7, 8, 9]

3.数组是否包含某个元素    Arrays.toString(s2).contains   转化为字符串,然后用contain方法

         /*3.数组是否包含某个元素,用Arrays.toString(s2),然后直接用字符串.contain方法*/
System.out.println("字符串是否包含:" + Arrays.toString(s2).contains("wyx"));

4.转换int值为字节数组

        byte[] bytes = ByteBuffer.allocate(4).putInt(90).array();
for (byte t : bytes) {
System.out.format("0x%x ", t); //0x0 0x0 0x0 0x5a
}

5.延伸:如何查看数组是否包含某个元素

方法1:Arrays.toString(s2).contains   转化为字符串,然后用contain方法

方法2:先用2,转化为集合,然后用contain方法

方法3:自循环

public static boolean Loop(String[] arr, String targetValue) {
for(String s: arr){
if(s.equals(targetValue))
return true;
}
return false;
}

方法4:Arrays.binarySearch()  ,只能用于有序数组,当数组存储数据很多时推荐此方法。

可以通过计算 long time=System.nanoTime() 计算一下时间复杂度。

 public static boolean binarySearch(String[] arr, String targetValue) {
int j = Arrays.binarySearch(arr, targetValue);
if (j > 0) {
return true;
} else
return false;
}

6.另外 Apache common lang 包中的ArrayUtils类常用来连接两个数组,数组元素移除,反转 ,用时再说~

就酱紫~

 
 
 

java基础知识4--数组的常用方法(Array)的更多相关文章

  1. Java基础知识系列——数组

    数组是我们在编程中常用到的一种数据结构. 数组创建有三种方式,以int类型为例: 1.int value[] = new int[]{1,2,3,4,5}; //{}中的是元素 2.int value ...

  2. java 基础知识五 数组

    java  基础知识五  数组 数组保存的是一组有顺序的.具有相同类型的数据. 同一个数组中所有数据元素的数据类型都是相同的. 可以通过数组下标来访问数组,数据元素根据下标的顺序,在内存中按顺序存放 ...

  3. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  4. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  5. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  6. Java 基础知识总结

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.数据类型:  数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte  8位   (by ...

  7. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  8. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  9. 毕向东—Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

随机推荐

  1. centos下安装jenkins

    To use this repository, run the following command: sudo wget -O /etc/yum.repos.d/jenkins.repo https: ...

  2. git命令中带有特殊符号如@

    使用带用户密码clone的方式:git clone https://username:password@remote 当username和password中含有特殊符号会导致出错,因为为http的请求 ...

  3. (简单易懂)Java的快速失败(fail-fast)与安全失败,源码分析+详细讲解

    之前在程序中遇到快速失败的问题,在网上找解释时发现网上的问题总结都比较片面,故打算自己总结一个,也可以供以后参考. --宇的季节 首先什么是快速失败? 快速失败是为了提示程序员在多线程的情况下不要用线 ...

  4. go web 第二天 学习笔记之文件上传

    package main import ( "crypto/md5" "fmt" "html/template" "io" ...

  5. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

  6. Java数组笔记

    # 数组--------内存 # 2017/8/31 15:29:19  ## 数组(容器) ## - 为了存储同种数据类型的多个值 - 概念     - 数组是可以存储同一种数据类型多个元素的集合, ...

  7. 关闭Excel提示文件格式和扩展名不匹配的警告框

    打开某些excel表时,Excel会提示: "a.xls"的文件格式和扩展名不匹配.文件可能已损坏或不安全.除非您信任其来源,否则请勿打开.是否仍要打开它?   在编辑大量的xls ...

  8. Mybatis --- 创建方法、全局配置

    总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]!     和数据库打交道的技术有:      原生的JDBC技术--->Spring的Jd ...

  9. BackgroundWorker类中主要属性、方法和事件

    属性: 1.CancellationPending             获取一个值,指示应用程序是否已请求取消后台操作.通过在DoWork事件中判断CancellationPending属性可以认 ...

  10. 优先队列的二叉堆Java实现

    package practice; import edu.princeton.cs.algs4.StdRandom; public class TestMain { public static voi ...