list.add("a")
list.add("b")
list.add("c")
list.add("bb)
list.add("dd")
list.add("a")
Map<Integer,Integer> map = new HashMap<Integer,Integer>()
for(Integer i :list){
map.put(i, map.get(i)+1)
}
for (Object o : map.keySet()) {
System.out.println(o + "出现次数:" + map.get(o))
}
参考一下
List和ArrayList的区别在于:
1、在编程语言中ArrayList类是.Net Framework提供的用于数据存储和检索的专用类。List 类可以简单视之为双向连结串行,以线性列的方式管理物件集合。List类是ArrayList类的泛型等效类。
2、ArrayList继承了IList接口,所以它可以很方便的进行数据的添加,插入和移除。List的大部分用法都与ArrayList相似,List类也继承了IList接口。
3、在ArrayList中可以插入不同类型的数据。ArrayList会把所有插入其中的数据都当作为object类型来处理,这其中存在装箱与拆箱的操作,会对系统造成性能上的损耗。而List需要声明其数据的对象类型。声明后插入其他类型数据,IDE就会报错,且不能通过编译。
4、在使用ArrayList中的数据来处理问题的时候,很可能会报类型不匹配的错误,即ArrayList不是类型安全的。而List已经声明过其数据的对象类型,是类型安全的,避免了前面讲的类型安全问题与装箱拆箱的性能问题。
5、ListArray就可以被构造。而List不能被构造,但可以为List创建一个引用。
扩展资料:
一、List泛型
通过允许指定泛型类或方法操作的特定类型,泛型功能将类型安全的任务从程序员转移给了编译器。不需要编写代码来检测数据类型是否正确,因为会在编译时强制使用正确的数据类型。减少了类型强制转换的需要和运行时错误的可能性。泛型提供了类型安全但没有增加多个实现的开销。
二、装箱与拆箱的概念:
1、装箱:就是将值类型的数据打包到引用类型的实例中 比如将int类型的值123赋给object对象o
int i=123object o=(object)i
2、拆箱:就是从引用数据中提取值类型 比如将object对象o的值赋给int类型的变量i
object o=123int i=(int)o
3、装箱与拆箱的过程是很损耗性能的。
参考资料:拆箱——百度百科
List指的是集合.<>是泛型,里面指定了这个集合中存放的是什么数据.比如有一个学生类Student,Student里面包含了学生的一些信息.这样每一个Student对象就代表了一个学生.此时List<Student>就代表这个集合中存放了很多个学生对象,这个集合就像一个班级一样.