List

存取有序,有索引,可以重复


ArrayList去除集合中字符串的重复值(字符串的内容相同)

  1. public static void main(String[] args) {
  2. ArrayList list = new ArrayList();
  3. list.add("a");
  4. list.add("a");
  5. list.add("b");
  6. list.add("b");
  7. list.add("b");
  8. list.add("c");
  9. list.add("c");
  10. list.add("c");
  11. list.add("c");
  12.  
  13. System.out.println(list);
  14. ArrayList newList = getSingle(list);
  15. System.out.println(newList);
  16. }
  17. /*
  18. * 去除重复
  19. * 1,返回ArrayList
  20. * 2,参数列表ArrayList
  21. */
  22. public static ArrayList getSingle(ArrayList list) {
  23. ArrayList newList = new ArrayList(); //创建一个新集合
  24. Iterator it = list.iterator(); //获取迭代器
  25. while(it.hasNext()) { //判断老集合中是否有元素
  26. String temp = (String)it.next(); //将每一个元素临时记录住
  27. if(!newList.contains(temp)) { //如果新集合中不包含该元素
  28. newList.add(temp); //将该元素添加到新集合中
  29. }
  30. }
  31. return newList; //将新集合返回
  32. }

通过分析源码,可以发现 contains()方法中也是用equals() 函数来判断的,而equals()方法,如果用来判断对象,会直接对比引用对象的地址,而不同对象的地址是不一样的,返回的结果总会是 true ,因此用来判断对象 要在 Person 类中重写 equals() 方法。

总结:

  contains() 和 remove() 方法中都是用 equals()方法来进行对比的,所以如果集合中存储的是对象,要重写 equals() 方法 

LinkedList 基本方法

  1. * LinkedList 基本方法
  2. public static void main(String[] args) {
  3. LinkedList list = new LinkedList();
  4. list.add("e");
  5. list.add("e");
  6. list.add("e");
  7. list.add("e");
  8. list.addFirst("k");
  9. list.addLast("z");
  10. System.out.println(list);
  11. System.out.pr intln(list.getFirst());
  12. System.out.println(list.getLast());
  13. System.out.println(list.removeLast());
  14. System.out.println(list.getLast());
  15. System.out.println(list.removeFirst());
  16. System.out.println(list);
  17. System.out.println(list.get()); //取得索引位置元素

  1. 三种迭代的能否删除(掌握)
  2. * 普通for循环,可以删除,但是索引要--
  3. * 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
  4. * 增强for循环不能删除

  1. Arrays工具类的asList()方法的使用(掌握)
  2. * A:案例演示
  3. * Arrays工具类的asList()方法的使用
  4. * CollectiontoArray(T[] a)泛型版的集合转数组
  5.  
  6. 集合嵌套之ArrayList嵌套ArrayList(掌握)
  7. * A:案例演示
  8. * 集合嵌套之ArrayList嵌套ArrayList

好的 突然

[集合]List的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. .Net多线程编程—并发集合

    并发集合 1 为什么使用并发集合? 原因主要有以下几点: System.Collections和System.Collections.Generic名称空间中所提供的经典列表.集合和数组都不是线程安全 ...

  3. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  4. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  5. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  6. Java基础Collection集合

    1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解) 2.学习集合从Collection开始,所有集合都继承了他的方法 集合结构如图:

  7. 轻量级“集合”迭代器-Generator

    Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...

  8. Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

    今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...

  9. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  10. python 数据类型 --- 集合

    1. 注意列表和集合的区别 set 列表表现形式: list_1 = [1,3,4];  集合表现形式:set_1= set() list_1 = [1,2,3,4,23,4,2] print(lis ...

随机推荐

  1. 微信小程序开发-入门到熟练(wepy-初级篇)

    Title:最近做完了项目,review代码的同时,就想写一篇详细的小程序开发经历,记录自己的项目从0到1的过程 Desc : 小程序从0到1,从小白到完成项目,你需要这样做: step1: 基础知识 ...

  2. SpringCloud创建Eureka

    Eureka是什么 Eureka是Netflix的一 个子模块,也是核心模块之一- .Eureka是一 个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务 ...

  3. linux运维、架构之路-xtrabackup

    一.XtraBackup介绍 1.备份工具 xtrabackup:是一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,占用磁盘空间小,能够非常快速地                   ...

  4. Eclipse搭建Maven项目并上传SVN备份

    本文出自:http://www.cnblogs.com/2186009311CFF/p/7226127.html 背景:近段时间在学着Java,想着用Java做BS的项目.但是项目一遇到问题又要重做, ...

  5. 【bzoj2502】清理雪道

    题目描述: 滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向. 你的团队负责每周定时清理雪道.你们拥有一架直升 ...

  6. 设计模式学习笔记——Adapter 适配器模式

    适配器设计模式的适应场景: 一般情况是上端固定,下端固定,下端功能不满足或跟上端不协调,使用适配器重新包一层(继承适配器接口,以满足上端需求,继承下层类,以调用方法),使下端代码能满足上端需求(欺骗, ...

  7. android中使用Application

    在android开发过程中,我们可能存储一些全局的变量,最好在正在app的任何一个activity或者service中都可以访问到,这时我们可以使用application. 我们的一个应用就叫appl ...

  8. Python List 列表list()方法

    Python基础数据类型之一列表list,在python中作用很强在,列表List可以包含不同类型的数据对像,同时它是一个有序的变量集合,每个变量可以存储一个地址.所有序列能用到的标准操作方法,列表也 ...

  9. js方法返回多值如何取值demo

    js方法返回,如何取值?下面demo两种方法 new array 和 json 返回值 取值示例. 方法一:  new array <html> <head> <meta ...

  10. webstorm tools window

    webstorm左侧的文件列表不见了, 通过菜单,view-->tools window-->project window就可以找到