java基础知识4--数组的常用方法(Array)
2017-02-21 15:56
791 查看
先说一个idea编辑器的问题,编辑器的光标变成黑色光标无法移动,按一下insert键就好了。
数组是线性数据存储结构、它用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。本身是一种引用类型的数据、所以我们要使用数组就要首先声明、初始化他、而它的初始化的完成也就意味着此数组的大小将不再改变、而且具有初始值。即定义数组必须给定数组的大小。Java中的数组长度不变!存储的数据类型唯一
数组的引用存放在栈内、实际对象存放在堆内存中。
常用的方法可如下:
1.数组的定义和声明(必须给定数组大小!!!!!)
2.将数组转化为集合(set,list)
(1)转化为list
(2)转化为set
(3)整型数组转化
特别注意,将整形数组转为集合,必须用原始类型。不能直接将int[]转化为集合、因为asList()方法的参数必须是对象。应该先把int[]转化为Integer[]。对于其他原始的类型的数组也是如此,必须先转换成相应的包装类类型数组。
Java是面向对象的编程语言,也就说一切皆为对象.可是那些int double 等八种数据类型却不是对象,这就与Java的一切皆是对象的思想相矛盾了,所以为了解决这个问题,Java就出现了包装类,把那些基本数据类型进行包装,让它成为了一个类,等用到的时候直接调用就可以了..因为集合的类型必须为对象,所以添加元素类型必须为原始类。
3.数组是否包含某个元素 Arrays.toString(s2).contains 转化为字符串,然后用contain方法
4.转换int值为字节数组
5.延伸:如何查看数组是否包含某个元素
方法1:Arrays.toString(s2).contains 转化为字符串,然后用contain方法
方法2:先用2,转化为集合,然后用contain方法
方法3:自循环
方法4:Arrays.binarySearch() ,只能用于有序数组,当数组存储数据很多时推荐此方法。
可以通过计算 long time=System.nanoTime() 计算一下时间复杂度。
6.另外 Apache common lang 包中的ArrayUtils类常用来连接两个数组,数组元素移除,反转 ,用时再说~
就酱紫~
数组是线性数据存储结构、它用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。本身是一种引用类型的数据、所以我们要使用数组就要首先声明、初始化他、而它的初始化的完成也就意味着此数组的大小将不再改变、而且具有初始值。即定义数组必须给定数组的大小。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基础学习应用_数组常用方法与排序(二)
- java基础知识1--String常用方法总结
- 【C#基础知识】之结构、数组及常用的几种排序方法总结
- JAVA基础——初识JAVA(六)(数组,数组遍历,数组排序,数组常用方法、二维数组)
- Java基础:数组Array转成List的几种方法
- Java基础知识强化85:System类之arraycopy()方法(数组拷贝)
- Java基础:数组Array转成List的几种方法
- Java基础:数组Array转成List的几种方法
- Java基础:数组Array转成List的几种方法
- 黑马程序员——Java语言基础——02.java语言基础组成(4)数组及常用排序方法
- 2017/12/30Java基础学习——复制数组のSystem.arraycopy()方法讲解
- Java基础:数组Array转成List的几种方法
- Java基础:数组Array转成List的几种方法
- Java基础知识强化105:打印数组的方法总结
- Java基础知识-常用方法-setContentView
- Java基础:数组Array转成List的几种方法
- java基础知识回顾之---java String final类普通方法的应用之字符串数组排序
- Java基础:数组Array转成List的几种方法
- Java基础学习应用_数组常用方法与排序(一)
- java基础知识--循环,数组,方法