java集合 java中什么叫集合
一、java集合类中哪些是线程安全的
一些历史类的一般是线程安全的,例如:Vector,HashTable等在jdk升级后,出现了替代一些集合的类,ArrayList,HashMap等,一般都是线程不安全的。
二、怎么用java8 lamada提取集合中每个对象的属性
要提取属性的话,用Stream中的map,然后使用方法引用,就可以了。
举个例子Student类中有name属性:
List<Student>students=newArrayList<Student>();
List<String>names=students.stream().map(Student::getName).collect(Collectors.toList());
也可以重新写你那个对象的toString()方法:
譬如你那个对象类为Studentclassstudent{privateintid;privateStringpassword;privateStringusername;publicStringtoString(){returnid+","+password+","+username;}}这样你就可以直接调用for(inti=0;i<list.size();i++){System.out.println(list.get(i).toString());};
三、java中什么叫集合
java中集合包含:List、Set、Map、工具类Collections
List包含以下子类
1.ArrayList
内部动态数组的实现,添加的时候有序,按照index遍历也是有序的,线程不安全类。
2.LinkedList
是一个继承于AbstractSequentialList的双向链表。它可以被当成堆栈、队列或双端队列进行操作。实现了List接口,能对它进行队列操作。实现了Deque接口,能当作双端队列使用。实现了Cloneable接口,覆盖了clone(),能克隆。实现了java.io.Serializable接口,这意味着LinkedList支持序列化,能通过序列化去传输。可以保持插入时的顺序
3.ArrayList和LinkedList区别
是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。
4.CopyOnWriteArrayList
线程安全的List,写时复制,写加锁,复制一个容器,读不加锁。
5.Vector
线程安全类,数组实现。读加锁,写加锁,性能低。