List 和Array的转化

转载 2013年12月05日 17:44:18

         数组转换成为List

 package test.test1; 

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

public class Test { 
public static void main(String[] args) { 
String[] array=new String[3]; 
array[0]="王利虎"; 
array[1]="张三"; 
array[2]="李四"; 
List<String> list=Arrays.asList(array); 
for(int i=0;i<list.size();i++){ 
System.out.println(list.get(i)); 
}   

    ArrayList类型的数据转换为String[]

   mport java.util.ArrayList
import java.util.List; 

public class Test { 
public static void main(String[] args) { 
List<String> list=new ArrayList<String>(); 
list.add("王利虎"); 
list.add("张三"); 
list.add("李四"); 
int size=list.size(); 
String[] array = (String[])list.toArray(new String[size]); 
for(int i=0;i<array.length;i++){ 
System.out.println(array[i]); 


   

Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

   

   

在Java中提供了Collection和Map接口。其中List和Set继承了Collection接口;同时用Vector、ArrayList、LinkedList三个类实现List接口,HashSet、TreeSet实现Set接口。直接有HashTable、HashMap、TreeMap实现Map接口。

    Vector基于Array的List,性能也就不可能超越Array,并且Vector是“sychronized”的,这个也是Vector和ArrayList的唯一的区别。

    ArrayList:同Vector一样是一个基于Array的,但是不同的是ArrayList不是同步的。所以在性能上要比Vector优越一些。Android123提示大家适用于顺序性的查找

    LinkedList:不同于前面两种List,它不是基于Array的,作为链表数据结构方式,所以不受Array性能的限制。当对LinkedList做添加,删除动作的时候只要更改nextNode的相关信息就可以实现了所以它适合于进行频繁进行插入和删除操作。这就是LinkedList的优势,当然对于元素的位置获取等方面就逊色很多。

    List:

        1. 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ];

        2. 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ];

        3. 所有的List中可以有null元素,例如[ tom,null,1 ];

        4. 基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。

虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。

     HashSet:HashSet的存储方式是把HashMap中的Key作为Set的对应存储项,HashMap的key是不能有重复的。HashSet能快速定位一个元素,但是放到HashSet中的对象需要实现hashCode()方法0。

    TreeSet:将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的。TreeSet不同于HashSet的根本是TreeSet是有序的。它是通过SortedMap来实现的。

    Set总结: 1. Set实现的基础是Map(HashMap); 2. Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象,不能包含两个元素e1、e2(e1.equals(e2))。

    Map是一种把键对象和值对象进行关联的容器,Map有两种比较常用的实现: HashTable、HashMap和TreeMap。

    HashMap也用到了哈希码的算法,以便快速查找一个键,

    TreeMap则是对键按序存放,因此它有一些扩展的方法,比如firstKey(),lastKey()等。

    HashMap和Hashtable的区别。 HashMap允许空(null)键(key)或值(value),由于非线程安全,效率上可能高于Hashtable。 Hashtable不允许空(null)键(key)或值(value)。

Scala中Array和List的区别

Difference between Array and List in scala Q:什么时候用Array(Buffer)和List(Buffer)? A: Scala中的List是不可变的递...
  • power0405hf
  • power0405hf
  • 2015年12月09日 14:03
  • 3599

关于Array和List的区别(转载)

 Array和List都属于顺序表。    Array是一段连续的存储结构int[] i=new int[3]i其实记录的是数组的首地址,而i[1]其实相当于在i的地址的基础上加上1个整数的地址偏移,...
  • starseeker7
  • starseeker7
  • 2009年03月29日 08:47
  • 14696

python中的list和array的区别

最近在学习机器学习,由于用到的是python,在进行数据处理时经常用到list和array类型,没有专门学过python,所以经常弄混,后来上网查了一下,它们的区别大致如下: 1 list是pyt...
  • MyHomeade
  • MyHomeade
  • 2017年04月22日 10:18
  • 1508

Java中Array、List的区别

Array、List的区别 Array—是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大 的,...
  • u010525970
  • u010525970
  • 2016年08月31日 09:50
  • 5836

list与array的互相转化

//list转化array names = new ArrayList; String[] gridsNames = new String[names.size()]; names.toArray(g...
  • u013425527
  • u013425527
  • 2017年02月07日 12:26
  • 348

numpy的array和python中自带的list之间相互转化

a=([3.234,34,3.777,6.33]) a为python的list类型 将a转化为numpy的array:   np.array(a) array([  3.234,  3...
  • baiyu9821179
  • baiyu9821179
  • 2016年11月27日 17:12
  • 34649

List和Array相互转化

 数组转成list 1 String[] userid = {"aa","bb","cc"}; List userList = new ArrayList();...
  • chunho
  • chunho
  • 2016年03月29日 12:27
  • 300

Array和List相互转化

在做ListView的时候,需要不断的和Adapter打交道,那在这个过程中不免总是会涉及到以下的基本操作: 在代码中获取资源文件中定义的Array数组: String[] array = get...
  • myzhzygh
  • myzhzygh
  • 2013年02月28日 00:24
  • 320

Core Java (二十五) List与Array的相互转化,Set与Array的相互转换

List与Array的相互转化 List转化成Array 调用了List的toArray方法,有两个同名方法,其中Object[] toArray()返回一个Object类型的数组,但使用起来很不...
  • xujinsmile
  • xujinsmile
  • 2013年01月26日 23:09
  • 6857

Array、List、Set转化

List转换成数组可以使用List的toArray方法,返回Object数组。 Set转换成数组可以使用Set的toArray方法,返回Object数组。 数组转List可以使用Arrays的...
  • fengzhiyan123
  • fengzhiyan123
  • 2016年09月12日 08:20
  • 170
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:List 和Array的转化
举报原因:
原因补充:

(最多只允许输入30个字)