- 浏览: 77119 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (95)
- Linux(CentOS) (17)
- ubuntu (16)
- linux命令 (13)
- java基础 (8)
- eclipse maven (1)
- ubuntu xen (0)
- samba (1)
- jdk (1)
- linux (1)
- jenkins (1)
- MySQL (4)
- spring (1)
- redis (2)
- zookeeper (3)
- java多线程 (3)
- 线程池 (2)
- 工具类 (1)
- 技术问答 (1)
- 算法 (1)
- eclipse JVM (1)
- hadoop配置 (2)
- hadoop配置 HDFS (0)
- ubuntu svn (1)
- hadoop (5)
- mapReduce (1)
- HDFS (2)
- hive (3)
- flume (1)
- python (6)
- centos (1)
- svn (1)
- sonar (1)
- JVM (1)
- kafka (1)
- zabbix (1)
- python paramiko (1)
- TPS (1)
- docker (4)
- ssh (2)
- Go (1)
最新评论
array与list相关
- 博客分类:
- java基础
1、将数组转化为一个列表
Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arrays.ArrayList类有set()、get()、contains()方法,但是没有增加元素的方法,所以它的大小是固定的,想要创建一个真正的ArrayList类,你应该这样做:
测试程序如下:
控制台报错:
正确代码:
控制台输出:
2
3
2、用Arrays的asList()生成的List时,获取List元素的个数
输出结果
如果直接传递数组,基本类型数组将被视为一个对象而不会被解析成数组,如果直接传递参数将能正常解析。
下面的写法更加清晰
================解释如下====================
如果是基本类型数组,自动装箱将数组包装为对象如 int[] intArray = new int[] { 1, 2}; T... a 就是 [[1, 2]],可以看到 a 的 size 将为 1
如果是对象数组,不需要自动装箱如 Integer[] integerArray = new Integer[] { 1, 2}; T... a 就是 [1, 2],可以看到 a 的 size 将为 2
其实只要记住这句话就ok了:
基本类型的一位数组可以被当作Object类型使用(1.5),不能当做Object[]类型使用(1.4);非基本类型的一维数组,既可以当做Object类型使用(1.5)也可以当做Object[]类型使用(1.4)
3、把提供的数组元素放入一个字符串
List<String> list = Arrays.asList(arr);
Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arrays.ArrayList类有set()、get()、contains()方法,但是没有增加元素的方法,所以它的大小是固定的,想要创建一个真正的ArrayList类,你应该这样做:
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
测试程序如下:
List<String> list = Arrays.asList("jzk","wyq"); System.out.println(list.size()); list.add("jdd"); System.out.println(list.size());
控制台报错:
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:131) at java.util.AbstractList.add(AbstractList.java:91)
正确代码:
List<String> list = new ArrayList<String>(Arrays.asList("jzk","wyq")); System.out.println(list.size()); list.add("jdd"); System.out.println(list.size());
控制台输出:
2
3
2、用Arrays的asList()生成的List时,获取List元素的个数
//经多次测试,只要传递的基本类型的数组,生成List的元素个数均为1 char arrc = {'a','b'}; int arrint = {1,2,4}; Arrays.asList(arrc).size() ;// 结果为1; Arrays.asList(arrint ).size() ;//结果为1; //传递对象数组,元素个数正确。 String arrstr = {"a","b","java","spring","hadoop","lucene"}; Arrays.asList(arrstr ).size() ;//结果为6;
public class TestArray { PrintStream out = System.out; @Test public void array() { char[] arrc = {'a','b','c','d','e'}; out.println("传递char数组:"); print(arrc); out.println("直接传递:"); print('a','b','c','d','e'); out.println("----------------------------"); int[] arri = {1,2,3,4,5,6,7}; out.println("传递int数组:"); print(arri); out.println("直接传递:"); print(1,2,3,4,5,6,7); out.println("----------------------------"); Integer[] arrInt = {1,2,3,4,5,6,7}; out.println("传递Integer数组:"); print(arrInt); out.println("直接传递:"); print(1,2,3,4,5,6,7); out.println("----------------------------"); String[] arrs = {"a","b","c","d","e"}; out.println("传递String数组:"); print(arrs); out.println("直接传递:"); print('a','b','c','d','e'); out.println("----------------------------"); } public void print(Object...arr){ out.print("内容:"+Arrays.toString(arr)); out.println("\t\t数组长度:"+arr.length+" "); } }
输出结果
传递char数组: 内容:[[C@defa1a] 数组长度:1 直接传递: 内容:[a, b, c, d, e] 数组长度:5 ---------------------------- 传递int数组: 内容:[[I@f5da06] 数组长度:1 直接传递: 内容:[1, 2, 3, 4, 5, 6, 7] 数组长度:7 ---------------------------- 传递Integer数组: 内容:[1, 2, 3, 4, 5, 6, 7] 数组长度:7 直接传递: 内容:[1, 2, 3, 4, 5, 6, 7] 数组长度:7 ---------------------------- 传递String数组: 内容:[a, b, c, d, e] 数组长度:5 直接传递: 内容:[a, b, c, d, e] 数组长度:5 ----------------------------
如果直接传递数组,基本类型数组将被视为一个对象而不会被解析成数组,如果直接传递参数将能正常解析。
下面的写法更加清晰
int[] intArray = {1,2,3}; List<int[]> myList = Arrays.asList(intArray); System.out.println(myList.size()); System.out.println(myList.get(0).length);
================解释如下====================
/** * Returns a fixed-size list backed by the specified array. (Changes to * the returned list "write through" to the array.) This method acts * as bridge between array-based and collection-based APIs, in * combination with {@link Collection#toArray}. The returned list is * serializable and implements {@link RandomAccess}. * * <p>This method also provides a convenient way to create a fixed-size * list initialized to contain several elements: * <pre> * List<String> stooges = Arrays.asList("Larry", "Moe", "Curly"); * </pre> * * @param a the array by which the list will be backed * @return a list view of the specified array */ public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); }
如果是基本类型数组,自动装箱将数组包装为对象如 int[] intArray = new int[] { 1, 2}; T... a 就是 [[1, 2]],可以看到 a 的 size 将为 1
如果是对象数组,不需要自动装箱如 Integer[] integerArray = new Integer[] { 1, 2}; T... a 就是 [1, 2],可以看到 a 的 size 将为 2
其实只要记住这句话就ok了:
基本类型的一位数组可以被当作Object类型使用(1.5),不能当做Object[]类型使用(1.4);非基本类型的一维数组,既可以当做Object类型使用(1.5)也可以当做Object[]类型使用(1.4)
3、把提供的数组元素放入一个字符串
// containing the provided list of elements // Apache common lang String j = StringUtils.join(new String[] { "a", "b", "c" }, ", "); System.out.println(j); // a, b, c
发表评论
-
数组中最大和的子数组
2014-12-18 19:49 533public static void main ... -
泛型复习
2014-10-19 16:29 329绕过编译器加入其他类型 import java.util. ... -
Hash内存溢出问题
2014-10-19 11:30 469public class Student { p ... -
Java数组操作的10大方法
2014-08-28 15:36 4490、定义一个Java数组 String[] aArray ... -
JVM系列一
2014-07-04 21:52 0当JVM运行Java程序的时候,它会加载对应的class文件, ... -
java的反射和代理实现IOC模式 模拟spring
2014-07-03 16:59 669转自http://blog.csdn.net/wwww1988 ... -
Java 自动装箱与拆箱
2014-07-01 14:37 549PS:基本转载于 http://blog.csdn.net/ ... -
java在一个循环中删除列表中元素的问题
2014-07-01 11:39 479思考下面这段代码的结果: ArrayList<Str ...
相关推荐
C# Array和ArrayList,List区别
javascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array ...
#ifndef __LIST_H__ #define __LIST_H__ struct list; struct list *list_init(); void list_free(struct list *list); int list_isempty(struct list *list); void list_clear(struct list *list); int list_...
java List、Set与Array之间的相互转换 java List、Set与Array之间的相互转换
主要介绍了Python中list以及list与array的相互转换实现方法,简单分析了Python中list的功能、使用方法及list与array相互转换实现技巧,需要的朋友可以参考下
List的contains方法、Array的contains方法的使用
VC设计数组列表添加编程代码VC designed to add programming code array list
Json格式的字符串转成List、Array、Map、Object、List等,就是各种字符串转其他格式的方法.有个封装好的转换方法和一个我自己做的示例
VC设计数组列表插入模块开发VC plug-in module design development array list
以上这篇对numpy的array和python中自带的list之间相互转化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:pytorch: tensor类型的构建与相互转换...
json与bean,array,list,map,简单类型之间的封装、解析
详解Java如何在Array和List之间进行转换.rar
第 05 节_GEE 的数据类型(Dictionary,List,Array).pdf
九章算法之链表与数组(Linked List & Array) 多看多思考
array和asarray都可以将结构数据...从中我们可以看出np.array与np.asarray功能是一样的,都是将输入转为矩阵格式。当输入是列表的时候,更改列表的值并不会影响转化为矩阵的值。 2.输入为数组时 a=np.random.random(
$ npm install array-list --save 用法 var arrayList = require ( 'array-list' ) // with limit var arr = arrayList ( 100 ) // without limit var arr = arrayList ( ) 原料药 arrayList([limit]) 限制 类型:...
VC数组列表中删除开发设计代码VC development and design of the array to remove the code list
Hibernate常见集合映射(Set,List_Array,Map,Bag)
jquery实现数组array、集合list、json类型的分页 其他可以查看代码,都有注释,调用也简单(当然,功能也简单 可以自己插入函数扩展一下)
主要介绍了@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧