java数组转list,JAVAANDROID 数组转换为LIST
java数组转list,JAVAANDROID 数组转换为LIST详细介绍
本文目录一览: java 怎么把数组转为list
本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在Stack Overflow上做很多事情的权限。这跟我没什么关系,我们还是先看看这个问题吧。
这个问题是”在Java中怎样把数组转换为ArrayList?”
?
1
Element[] array = {new Element(1),new Element(2),new Element(3)};
1.最流行也是被最多人接受的答案
最普遍也是被最多人接受的答案如下:
?
1
ArrayList
arrayList = new ArrayList
(Arrays.asList(array));
首先,我们来看下ArrayList的构造方法的文档。
ArrayList(Collection < ? extends E > c) : 构造一个包含特定容器的元素的列表,并且根据容器迭代器的顺序返回。
所以构造方法所做的事情如下:
1.将容器c转换为一个数组
2.将数组拷贝到ArrayList中称为”elementData”的数组中
ArrayList的构造方法的源码如下:
?
1234567
public ArrayList(Collection
c) { elementData = c.toArray(); size = elementData.length; if (elementData.getClass() != Object[].class) elementData = Arrays.copyOf(elementData, size, Object[].class);}
2.另外一个流行的答案
另外一个流行的答案是:
?
1
List
list = Arrays.asList(array);
这不是最好的,因为asList()返回的列表的大小是固定的。事实上,返回的列表不是java.util.ArrayList,而是定义在java.util.Arrays中一个私有静态类。我们知道ArrayList的实现本质上是一个数组,而asList()返回的列表是由原始数组支持的固定大小的列表。这种情况下,如果添加或删除列表中的元素,程序会抛出异常UnsupportedOperationException。
?
1
list.add(new Element(4));
?
12
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList at collection.ConvertArray.main(ConvertArray.java:22)
3.又一个解决方案
这个解决方案由Otto提供
?
123
Element[] array = {new Element(1), new Element(2)};List
list = new ArrayList
(array.length);Collections.addAll(list, array);
4.该问题的表明的东西
这个问题不难,但却很有趣。每个Java程序员都知道ArrayList,但却很容易犯下这样的错误。我想这就是这个问题很火的原因吧。如果是一个特定领域的Java库的相似的问题,就远不会这样火热了。
这个问题有好多答案提供了相同的解决方案,对于StackOverflow的其他问题也是这样。我猜想当人们想要回答一个问题时,是不会管别人说了什么的。
1.
String[] userid = {"aa","bb","cc"};List
userList = new ArrayList
();Collections.addAll(userList, userid);2.
String[] userid = {"aa","bb","cc"};List
userList = Arrays.asList(userid);3.
循环操作数组再add
望采纳。
补充一个
List
list = Arrays.asList(1, 2, 3);
1.List转换成为数组。(这里的List是实体是ArrayList)
调用ArrayList的toArray方法。
toArray
public
T[] toArray(T[]
a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元
素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。
如果指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为 null。这对确定列表的长度很有用,但只 在调用方知道列表中不包含任何 null 元素时才有用。
指定者:
接口 Collection
中的 toArray
指定者:
接口 List
中的 toArray
覆盖:
类 AbstractCollection
中的 toArray
参数:
a - 要存储列表元素的数组,如果它足够大的话;否则,它是一个为存储列表元素而分配的、具有相同运行时类型的新数组。
返回:
包含列表元素的数组。
抛出:
ArrayStoreException - 如果 a 的运行时类型不是此列表中每个元素的运行时类型的超类型。
具体用法:
List list = new ArrayList();
list.add("1");
list.add("2");
final int size = list.size();
String[] arr = (String[])list.toArray(new String[size]);
2.数组转换成为List。
调用Arrays的asList方法.
asList
public static
List
asList(T... a)返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同
Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的 API
之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。
此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:
List stooges = Arrays.asList("Larry", "Moe", "Curly");
参数:
a - 支持列表的数组。
返回:
指定数组的列表视图。
另请参见:
Collection.toArray()
具体用法:
String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);
java中数组如何转换成List?
第一种
String[] userid = {"aa","bb","cc"};List
userList = new ArrayList
();Collections.addAll(userList, userid);第二种
String[] userid = {"aa","bb","cc"};List
userList = Arrays.asList(userid);另:Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等操作。
List list = new ArrayList(Arrays.asList(userid));这样操作就可以了。
第三种(最笨的方法):
String[] userid = {"aa","bb","cc"};List
userList = new ArrayList
(userid.length);for(String uid: userid){userList.add(uid);}
public static void main(String[] args) { String[] a={"a","v","b","c","d",}; List
list=new ArrayList
(); for (int i = 0; i < a.length; i++) { list.add(a[i]); } System.out.println(list.size()); }
数组的好像没有。
集合里有一个
Collections.shuffle(List list)这个方法可以把List集合里的元素打乱。
你可以先把数组转为集合。
或者直接就用ArrayList吧。
满意请采纳。
java数组转换成为List。
调用Arrays的asList方法.
String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);
List
list1 = new ArrayList
(Arrays.asList(ia));
//小例子//这里注意的是,不能是基本类型,必须是包装类Byte[]可以。public class Demo { public static void main(String[] args)throws Exception{ String[] arr = {"asd","sd","df"}; List list = Arrays.asList(arr); System.out.println(list); }}
Java基础:数组Array转成List的几种方法
// 貌似只有2楼说的这种方法int[] i = {12,3,44,56,42,123};ArrayList
list = new ArrayList
();for(int j = 0; j < i.length; j++) { list.add(i[j]);}
代码片段(3)[全屏查看所有代码]1. [代码]数组->List (StringArrayTest.java) import java.util.Arrays; import java.util.List; import java.util.ArrayList; public class StringArrayTest { public static void main(String[] args) { String[] words = {"ace", "boom", "crew", "dog", "eon"}; List wordList = Arrays.asList(words); for (String e : wordList) { System.out.println(e); } } }2. [代码]比较傻的做法 String[] words = { ... }; List list = new ArrayList(words.length); for (String s : words) { list.add(s); }3. [代码]这方法也还可以 import java.util.Collections; List myList = new ArrayList(); String[] myStringArray = new String[] {"Java", "is", "Cool"}; Collections.addAll(myList, myStringArray);
好像只能一个个把数组里的数据添加到集合里去啊
如何在JAVA中将一个数组转换为一个集合?
可以用循环把数组中的元素读出,然后再add都list中去
for(int i=0;i
<stus.length;i++){
Student stu=stus[i];
list.add(stu);
}
类似这样...
一,
判空(null),
只要有一个是空的,
则返回另外一个
二,
新建数组,
长度等于两个数组长度之和
三,
复制数组,
可用system.arraycopy()进行
可以用循环把数组中的元素读出,然后再add都list中去
for(int
i=0;i
<stus.length;i++){
Student
stu=stus[i];
list.add(stu);
}
类似这样...
java.util.Arrays
Student[] stus = new Student[10];
ArrayList list = new ArrayList();
list = listArrays.asList(stus);
这样就可以把数组stus转换为List了
</stus.length;i++){
</stus.length;i++){
java中类似于[{},{},{}]格式的数组如何转为list
List
list = new ArrayList
();
Tbconten tb;
tb = new Tbconten("01", "jack");
list.add(tb);
tb = new Tbconten("02", "tim");
list.add(tb);
JAVAANDROID 数组转换为LIST
String[][] datas = {{"aaa","aa1","aa11"},{"bbb","bb1","bb11"},{"ccc","cc1","cc11"},
{"aaa","aa2","aa22"},{"bbb","bb2","bb22"},{"aaa","aa3","aa33"},
{"bbb","bb3","bb33"}};
Map
map = new HashMap
();
for (String[] strings : datas) {
DetailModel detail = new DetailModel();
detail.setPron(strings[0]);
List
li = new ArrayList
();
MeanPhrase mean = new MeanPhrase();
mean.setMean(strings[1]);
mean.setPhrase(strings[2]);
li.add(mean);
detail.setMpList(li);
//如果已存在相同的key,如aaa,则在key对应的对象的list中增加元素
if(map.containsKey(detail.getPron())){
map.get(detail.getPron()).getMpList().addAll(li);
}else{//否则直接新增
map.put(detail.getPron(), detail);
}
}
//将map转为list
List
resultList = new ArrayList
(map.values());
for (DetailModel detailModel : resultList) {
System.out.println(detailModel);
}
//输出map中的值以及分组结果记录数
System.out.println("======================================");
Set
keySet = map.keySet();
for (String string : keySet) {
System.out.println(string+":"+map.get(string).getPron()+":"+map.get(string).getMpList().size());
}
控制台输出结果:
DetailModel [pron=aaa, mpList=[MeanPhrase [mean=aa1, phrase=aa11], MeanPhrase [mean=aa2, phrase=aa22], MeanPhrase [mean=aa3, phrase=aa33]]]
DetailModel [pron=ccc, mpList=[MeanPhrase [mean=cc1, phrase=cc11]]]
DetailModel [pron=bbb, mpList=[MeanPhrase [mean=bb1, phrase=bb11], MeanPhrase [mean=bb2, phrase=bb22], MeanPhrase [mean=bb3, phrase=bb33]]]
======================================
aaa:aaa:3
ccc:ccc:1
bbb:bbb:3
注意:DetailModel [pron=ccc, mpList=[MeanPhrase [mean=cc1, phrase=cc11]]]输出这样的形式是因为我实体类重写了toString()方法的原因,你那不重写的话输出的应该只是对象地址。
public class test {
public static String[][] datas = {{"aaa", "aa1", "aa11"},
{"bbb", "bb1", "bb11"}, {"ccc", "cc1", "cc11"},
{"aaa", "aa2", "aa22"}, {"bbb", "bb2", "bb22"},
{"aaa", "aa3", "aa33"}, {"bbb", "bb3", "bb33"}};
public static List
mpList;
// pron = "aaa", mean="aa1", phrase="aa11"
public static class MeanPhrase {
public String pron, mean, phrase;
public MeanPhrase(String pron, String mean, String phrase) {
this.pron = pron;
this.mean = mean;
this.phrase = phrase;
}
}
public static void main(String[] args) {
for (int i = 0; i < datas.length; i++) {
MeanPhrase meanPhrase = new MeanPhrase(datas[i][0],datas[i][1],datas[i][2]);
mpList.add(meanPhrase);
}
}
}
没什么简便方法 遍历这个数组然后封装到DetailModel类里面,封装好一个就用list.add加一个
datas转String
1、下载个Google的gson包,
Gson gson = new Gson();
List
list = gson.fromJson(str, new TypeToken
<list
>(){}.getType());
2、下在json包
使用JSONObject.
</list
在Java中怎样把数组转换为ArrayList
本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在Stack Overflow上做很多事情的权限。这跟我没什么关系,我们还是先看看这个问题吧。
这个问题是”在Java中怎样把数组转换为ArrayList?”
?
1
Element[] array = {new Element(1),new Element(2),new Element(3)};
1.最流行也是被最多人接受的答案
最普遍也是被最多人接受的答案如下:
?
1
ArrayList
arrayList = new ArrayList
(Arrays.asList(array));
首先,我们来看下ArrayList的构造方法的文档。
ArrayList(Collection < ? extends E > c) : 构造一个包含特定容器的元素的列表,并且根据容器迭代器的顺序返回。
所以构造方法所做的事情如下:
1.将容器c转换为一个数组
2.将数组拷贝到ArrayList中称为”elementData”的数组中
ArrayList的构造方法的源码如下:
?
1234567
public ArrayList(Collection
c) { elementData = c.toArray(); size = elementData.length; if (elementData.getClass() != Object[].class) elementData = Arrays.copyOf(elementData, size, Object[].class);}
2.另外一个流行的答案
另外一个流行的答案是:
?
1
List
list = Arrays.asList(array);
这不是最好的,因为asList()返回的列表的大小是固定的。事实上,返回的列表不是java.util.ArrayList,而是定义在java.util.Arrays中一个私有静态类。我们知道ArrayList的实现本质上是一个数组,而asList()返回的列表是由原始数组支持的固定大小的列表。这种情况下,如果添加或删除列表中的元素,程序会抛出异常UnsupportedOperationException。
?
1
list.add(new Element(4));
?
12
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList at collection.ConvertArray.main(ConvertArray.java:22)
3.又一个解决方案
这个解决方案由Otto提供
?
123
Element[] array = {new Element(1), new Element(2)};List
list = new ArrayList
(array.length);Collections.addAll(list, array);
4.该问题的表明的东西
这个问题不难,但却很有趣。每个Java程序员都知道ArrayList,但却很容易犯下这样的错误。我想这就是这个问题很火的原因吧。如果是一个特定领域的Java库的相似的问题,就远不会这样火热了。
这个问题有好多答案提供了相同的解决方案,对于StackOverflow的其他问题也是这样。我猜想当人们想要回答一个问题时,是不会管别人说了什么的。
Java中有将二维数组转化为二维的List的方法吗?即ArrayList(ArrayList(Object))的形式
ArrayList
<arraylist
list_array = Arrays.asList(array); List
<list
> list_integer = new ArrayList
<list
>(); for (int i = 0; i < list_array.size(); i++) { list_integer.add(Arrays.asList(list_array.get(i))); } for (List
innerList : list_integer) { for (Integer value : innerList) { System.out.print(value + " "); } System.out.println(); } }
关于java集合的一个问题,怎么把一个数组添加到List集合
将2图中第11行代码换成
list=Arrays.asList(array);这样应该就行了
在第10行定义list的时候类型定义为数组类型就行了
ArrayList
list=new ArrayList<>();
在第10行定义list的时候类型定义为数组类型就行。
ArrayList
list=new ArrayList<>();
如果list是按bean对象bai存,则对象要改变:之前List对象存2个属性:DepartID,num,添加后的对象有3个属性:DepartID,num,dpsNum,所以要定义新的List对象来存两个List的结果。(见下面代码,已调通,1个main类,3个对象类)。
如果list是按string存而非bean对象,则for循环遍历list1后,将list2字符串拼接到list1末尾,再覆盖进list1对应结果中就行,list1.set(index,list1.get(index)+list2.get(index)),类似这句,没调试过。
扩展资料:
Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。
Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element)。
Java提供了对象的数种保存方式,除了内置的数组以外,其余的称为集合类。为了使程序方便地存储和操纵数目不固定的一组数据,JDK中提供了Java集合类,所有Java集合类都位于Java.util包中,与Java数组不同,Java集合不能存放基本数据类型数据,而只能存放对象的引用。
参考资料来源:百度百科-java集合类
</list
</list
</arraylist