一、java中map和list的区别
1、Java中的**包括三大类,它们是Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap。
2、List中的对象按照索引位置排序,可以有重复对象,允许按照对象在**中的索引位置检索对象,如通过list.get(i)方式来获得List**中的元素。List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。List允许有相同的元素。实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
3、Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种**的视图,Map的内容可以被当作一组key**,一组value**,或者一组key-value映射。
二、怎么用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去除两个**中重复的数据,也就是求差值
List<String>stuList3=newArrayList<String>(); stuList3.addAll(stuList); stuList3.addAll(stuList2);//把两个**合成一个 stuList.retainAll(stuList2);//找出两个**中重复的数据 stuList3.removeAll(stuList);//然后移除 for(Strings:stuList3){ System.out.println(s);//打印结果 }
感谢您花时间阅读本文!我们希望通过对java**详解和java**的用法的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。