【Java】数组知识回顾

package another;

import java.util.Arrays;
import java.util.List;

/**
 * 数组知识回顾
 * @author ChristineBassoon
 */
public class Array {
	public static void main(String[] args) {

		//1. 新建数组的三种方式
		int[] arr1 = new int[3];
		int[] arr2 = {3,2,4,1};
		int[] arr3 = new int[]{5,7,9,0,3,5};

		//填充数组
		Arrays.fill(arr1, 10);//[10,10,10]

		//2. 数组元素默认值
		int[] arr_int = new int[3];//[0,0,0]
		String[] arr_str = new String[3];//[null,null,null]

		//3. 输出数组内容,如:[0,0,0,0]
		Arrays.toString(arr1);

		/*4. 数组自动排序(从小到大)
		 * 一、 数组全排序  Arrays.sort(T[])
		 * 二、 特定位置排序 Arrays.sort(T[], fromIndex, toIndex);
		 */
		Arrays.sort(arr2);//[1,2,3,4]
		Arrays.sort(arr3,1,3);//只排序下标1-3的元素 [5,0,7,9,3,5]

		//5. 数组扩容、复制等————基于方法System.arraycopy(src, srcPos, dest, destPos, length);

		/*
		 * (1) 扩容
		 * Arrays.copyOf(original, newLength)
		 * 扩充的元素加至原序列末尾
		 */
		int[] arr4 = Arrays.copyOf(arr2, arr2.length+2);//[1,2,3,4,0,0]

		/*
		 * (2) 缩容
		 * Arrays.copyOf(original, newLength)
		 * 根据指定长度,只保留原数组的头部
		 *
		 */
		int[] arr5 = Arrays.copyOf(arr2, 2);// [1,2]

		/*
		 * (3) 截取(同数组中)
		 * Arrays.copyOfRange(original, from, to)
		 * 范围为[from,to),超出则抛IllegalArgumentException异常
		 */
		int[] arr6 = Arrays.copyOfRange(arr2, 1, 3);//[2,3]

		/*
		 * 用外部数组元素替换本数组指定位置
		 * System.arraycopy(src, srcPos, dest, destPos, length); length表示需要复制的元素个数
		 */
		String[] t1 = {"a","b","c","d"};
		String[] t2 = {"Apple","Boy","C","D"};
		System.arraycopy(t1, 1, t2, 2, 1);
		System.out.println(Arrays.toString(t2));//[Apple, Boy, b, D]

		//数组转换为List类型
		List list = Arrays.asList(arr2);

	}
}

原文地址:https://www.cnblogs.com/tubybassoon/p/9905924.html

时间: 2024-07-31 22:39:47

【Java】数组知识回顾的相关文章

java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)

直接看代码: package cn.itcast.io.p6.bytestream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; public class ByteArrayStreamDemo { /** * @param args * @throws IOException * 特点 * 1.内存操作流 * 2.不操作底层资源,不调

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

辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      *      * 1,获取:     * 1.1 获取字符串中字符的个数(长度).     *         int length();     * 1.2 取字符串中的某一个字符,其中的参数index指的是字符串中序数.字符串的序数从0开始到length()-1 .     *       

java基础知识回顾之---java String final类普通方法的应用之“按照字节截取字符串”

/*需求:在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符.但对应的字节数不同,一个汉字占两个字节.定义一个方法,按照最大的字节数来取子串.如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个,那么半个就要舍弃.如果去四个字节就是“ab你”,取五个字节还是“ab你”.*/ 代码:其实是一个解码和编码的问题,要明白UTF-8码表和GBK码表的区别,UTF-8中用三个字节代表一个汉字,GBK使用2个字节代表一个汉字. 且在码表中都是用数字存放这些汉字.

java基础知识回顾之javaIO类--RandomAccessFile类

java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部分装了一个字节数组,通过指针可以操作数组中的元素.4.其实该对象就是将字节输入流和输出流进行了封装.5.该对象只能对文件操作,目的和源只能是文件对象.通过看构造方法可以看得出来.RandomAccessFile(File file, String mode) RandomAccessFile(Str

java基础知识回顾之---java String final类 容易混淆的java String常量池内存分析

/** *   栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放  在常量池中). 堆(heap):存放所有new出来的对象. *   静态存储:存放静态成员(static定义的). 常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float.int等).另外,可以存储不经常改变的东西 *                       p

java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter

FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFilter filter)或者public File[] listFiles(FileFilter filter)方法,把FilenameFilter或者FileFilter接口对象作为参数传入,通过实现接口里面的 boolean accept(File dir, String name) 或者boo

java基础知识回顾之---java String final类普通方法的应用之字符串数组排序

/* * 1,给定一个字符串数组.按照字典顺序进行从小到大的排序. * {"nba","abc","cba","zz","qq","haha"} *  * 思路: * 1,对数组排序.可以用选择,冒泡都行. * 2,for嵌套和比较以及换位. * 3,问题:以前排的是整数,比较用的比较运算符,可是现在是字符串对象. *   字符串对象怎么比较呢?爽了,对象中提供了用于字符串对象比较的功能

java基础知识回顾之---java StringBuffer,Stringbuilder与String的区别

public class StringBuilderTest { /** * StringBuffer和Stringbuilder :使用与内容可以被修改的字符串 * 与String的区别:String是内容不可以修改的字符串.根据下面的例子知道, * 当你知道字符数据要改变的时候用StringBuffer和Stringbuilder,效率高 */ public static void main(String[] args) { int[] arr = {3,1,5,3,8}; String s

java基础知识回顾之---java StringBuffer类

/*         * StringBuffer:就是字符串缓冲区,线程安全.         * 用于存储数据的容器.         * 特点:         * 1,长度的可变的.          * 2,可以存储不同类型数据.         * 3,最终要转成字符串进行使用.         * 4,可以对字符串进行修改.         *          * 构造方法:         * StringBuffer() :构造一个其中不带字符的字符串缓冲区,其初始容量为 1