Java基础数组

xiaoxiao2021-02-28  87

一.数组的简介 java中的数组、是一种简单的线性数据存储结构、他用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。他本身是一种引用类型的数据、所以我们要使用数组就要首先声明、初始化他、而他的初始化的完成也就意味着此数组的大小将不再改变、而且具有初始值。当存储的是java原始基础类型时、默认值是不同基础类型值的默认值、当是引用类型时、如果我们没有指定具体的对象、则他的默认值是null。从数组的内部组成来看、觉得java中没有多维数组!所谓的多维数组其实就是一维数组的延伸、只是数组的值存放的是另一个数组的引用、依次深入、我们可以扩展到任意维度的数组、注意:数组的扩展的过程中只能存放相同类型或者子类型的数组! Java中的数组长度不变!存储的数据类型唯一!有时候我们会有种错觉觉得这两者都是不成立的、本质是因为java中继承的存在、我们定义的父类型的数组、他的数组元素也同样可以存放子类对象、这样就造成了数组存放对象可变的假象。当我们将数组的引用从一个对象改变到子类的对象的时候、感觉数组的长度变化、其实变的是引用指向的对象的长度、原来引用指向的对象长度没有变化、只是此对象被遗弃了而已、对此只要记住一点:java中的数组时引用类型、当声明初始化一个对象时、数组的引用存放在栈内、实际对象存放在堆内存中、而我们平常所指的长度、类型都是具体对象的长度、类型! 此外、Arrays是一个操作java数组的类、提供了一些非常实用的用于操作数组的类、还有就是java数组与集合比较相似。 二. 数组的声明,初始化及常用方法

1.声明数组

String[] array1 = new String[6]; String[] array2 = {"a","b","c", "d", "e","f"}; String[] array3 = new String[]{"a","b","c","d","e","f"};

2.数组输出

int[] intArray = { 1, 2, 3, 4, 5};   String intArrayToString = Arrays.toString(intArray);       // print directly will print reference value   System.out.println(intArray);   // [I@7150bd4d       System.out.println(intArrayToString);   // [1, 2, 3, 4, 5]  

3.用一个数组创建数组列表 String[] stringArray = { "a", "b", "c", "d", "e" ,"f"};   ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));   System.out.println(arrayList);   // [a, b, c, d, e, f]   

4.查看一个数组是否包含某个值  String[] stringArray = { "a", "b", "c", "d", "e", "f"};   boolean b = Arrays.asList(stringArray).contains("f");   System.out.println(b); // true    boolean bo = Arrays.asList(stringArray).contains("g");  System.out.println(b);  // false 

5.数组拼接 int[] intArray1 = { 1, 2, 3, 4, 5 };   int[] intArray2 = { 6, 7, 8, 9, 10 };   // Apache Commons Lang library   int[] intArray3 = ArrayUtils.addAll(intArray, intArray2);  String intArray3ToString = Arrays.toString(intArray3); System.out.println(intArray3ToString);   // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

6.声明内联数组(Array inline) method(new String[]{"a", "b", "c", "d", "e"});  7.数组元素放入字符串  String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");   System.out.println(j);   // a, b, c   8.将数组列表转换为数组  String[] stringArray = { "a", "b", "c", "d", "e" };   ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));   String[] stringArr = new String[arrayList.size()];   arrayList.toArray(stringArr);   for (String s : stringArr) { System.out.println(s); }     9.数组转换为集合(set) String[] stringArray = { "a", "b", "c", "d", "e" };   Set<String> set = new HashSet<String>(Arrays.asList(stringArray));   System.out.println(set);   //[d, e, b, c, a]  10.逆向一个数组  int[] intArray = { 1, 2, 3, 4, 5 };   ArrayUtils.reverse(intArray);   System.out.println(Arrays.toString(intArray));   //[5, 4, 3, 2, 1]   11.删除数组元素 int[] intArray = { 1, 2, 3, 4, 5 };   int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array   System.out.println(Arrays.toString(removed));  12.整数转换为字节数组  byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();     for (byte t : bytes) {      System.out.format("0x%x ", t);   } 

转载请注明原文地址: https://www.6miu.com/read-82243.html

最新回复(0)