1. List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素);
  2. 移除指定索引的元素   remove(索引)
  3. 修改指定索引的元素   set(索引,修改的元素)
  4. package com.List集合;
    
    import java.util.ArrayList;
    import java.util.List; public class Demo01 { public static void main(String[] args) {
    /*
    * add(索引,插入的元素)方法
    */
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add(1, "q");
    System.out.println(list); /*
    * 元素修改set(索引,修改的元素)
    */
    list.set(0, "w");
    System.out.println(list); list.remove(0);
    System.out.println(list);
    list.remove("b");
    System.out.println(list); } }
  5. ArrayList集合  在这里我就不多介绍了   (查找元素快,增删慢)
  6. LinkedList集合  (查找元素慢,增删快)
  • LinkedList集合几个方法需要掌握
  • addFrist()  在集合的首部添加元素
  • addLast()  在集合的尾部添加元素
  • removeFirst() 移除集合首部的元素
  • removeLast() 移除集合尾部的元素
  • getFrist() 获取集合首部的元素
  • getLast() 获取集合尾部的元素
  • isEmpty() 判断集合是否为空
  • 		LinkedList<String> linkedList = new LinkedList<>();
    linkedList.add("a");
    linkedList.add("a");
    linkedList.add("b");
    linkedList.add("a"); linkedList.addFirst("0");
    linkedList.addLast("9");
    System.out.println(linkedList); linkedList.removeLast();
    System.out.println(linkedList);
    linkedList.removeFirst();
    System.out.println(linkedList); String first = linkedList.getFirst();
    System.out.println(first);
    String last = linkedList.getLast();
    System.out.println(last); boolean b = linkedList.isEmpty();
    System.out.println(b);
  • Set接口(无序,不重复的)
  • 我们直接学习HashSet接口
  • HashSet当你存储相同元素时,是添加不进去的 他会判断集合中是否存在,这里我们用自定义的引用类型说明
  • package com.Set集合;
    
    public class Person {
    private String name;
    private int age;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public Person(String name, int age) {
    super();
    this.name = name;
    this.age = age;
    }
    public Person() {
    super();
    // TODO Auto-generated constructor stub
    }
    @Override
    public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + age;
    result = prime * result + ((name == null) ? 0 : name.hashCode());
    return result;
    }
    @Override
    public boolean equals(Object obj) {
    if (this == obj)
    return true;
    if (obj == null)
    return false;
    if (getClass() != obj.getClass())
    return false;
    Person other = (Person) obj;
    if (age != other.age)
    return false;
    if (name == null) {
    if (other.name != null)
    return false;
    } else if (!name.equals(other.name))
    return false;
    return true;
    }
    @Override
    public String toString() {
    return "Person [name=" + name + ", age=" + age + "]";
    } }

    这里注意我们需要重写HashClod方法与equlas()方法  当然在打印的时候需要重写toString()方法

  •     public static void main(String[] args) {
    HashSet<Person> hashSet = new HashSet<>();
    hashSet.add(new Person("张三",12));
    hashSet.add(new Person("李四",12));
    hashSet.add(new Person("张三",12));
    hashSet.add(new Person("张三",21));
    // System.out.println(hashSet);
    Iterator<Person> iterator =hashSet.iterator();
    while(iterator.hasNext()){
    Person next = iterator.next();
    System.out.println(next);
    }
    }
    }
    //执行结果为:张三 12
    李四 12
    张三 21
  • 这就是HashSet的去重复元素的功能  结果是无序的
  • Set接口下还有一个LinkedHashSet集合,这是弥补了Set无序的缺点
  • public class Demo02_LinkedHashSet {
    public static void main(String[] args) {
    LinkedHashSet<String> hashSet = new LinkedHashSet<>();
    hashSet.add("a");
    hashSet.add("b");
    hashSet.add("c");
    hashSet.add("d");
    //增强for遍历
    for (String string : hashSet) {
    System.out.print(string+" ");
    }
    //迭代器遍历
    Iterator<String> iterator = hashSet.iterator();
    while(iterator.hasNext()){
    String str = iterator.next();
    System.out.println(str);
    } System.out.println(hashSet);
    }

java基础_集合List与Set接口的更多相关文章

  1. Java基础之集合框架(Collection接口和List接口)

    首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...

  2. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

  3. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  4. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  5. Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)

    Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...

  6. Java中的集合(十一) 实现Map接口的TreeMap

    Java中的集合(十一) 实现Map接口的TreeMap 一.TreeMap简介(基于JDK1.8) TreeMap是基于红黑树数据结构,是一个key-value的有序集合,该映射根据其键的自然顺序进 ...

  7. java基础技术集合面试【笔记】

    java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...

  8. 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...

  9. Java中的集合(十三) 实现Map接口的Hashtable

    Java中的集合(十三) 实现Map接口的Hashtable 一.Hashtable简介 和HashMap一样,Hashtable采用“拉链法”实现一个哈希表,它存储的内容是键值对(key-value ...

随机推荐

  1. react-router 组件式配置与对象式配置小区别

    1. react-router 对象式配置 和 组件式配置    组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...

  2. NPM (node package manager) 入门 - 基础使用

    什么是npm ? npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 截至 ...

  3. IE的F12开发人员工具不显示问题

    按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示.将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来.将鼠标移动到开发人员工具的缩略图上,右键-最大化,工具就全屏出现 ...

  4. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件

    系列目录 上一篇演示了WebApi利用Unity注入 很多人问我如何用配置文件来配置注入,本节演示如何利用配置文件来注入,道理是一样的,跳转到上一节下载源码一起来动手! 1.打开源码定位到文件Depe ...

  6. MVC CodeFirst简单的创建数据库(非常详细的步骤)

       最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...

  7. [原] KVM 虚拟化原理探究(3)— CPU 虚拟化

    KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要 ...

  8. Kafka副本管理—— 为何去掉replica.lag.max.messages参数

    今天查看Kafka 0.10.0的官方文档,发现了这样一句话:Configuration parameter replica.lag.max.messages was removed. Partiti ...

  9. java观察者模式

      像activeMQ等消息队列中,我们经常会使用发布订阅模式,但是你有没有想过,客户端时如何及时得到订阅的主题的信息?其实就里就用到了观察者模式.在软件系统中,当一个对象的行为依赖于另一个对象的状态 ...

  10. BPM配置故事之案例9-根据表单数据调整审批线路2

    老李:好久不见啊,小明. 小明:-- 老李:不少部门有物资着急使用,现在的审批流程太慢了,申请时增加一个是否加急的选项吧.如果选加急,金额1000以下的直接到我这里,我审批完就通过,超过1000的直接 ...