1、1list接口的特点
1、有序集合,存储元素和取出来的元素的顺序是一致的,即存进去是1 2 3 取出来也是1 2 3
2、有索引,包含了一些带索引的方法
2、list操作
List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:
public void add(int index, E element)
: 将指定的元素,添加到该集合中的指定位置上。
public E get(int index)
:返回集合中指定位置的元素。
public E remove(int index)
: 移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element)
:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
代码如下: package com.company.demo808; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * - `public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。 * - `public E get(int index)`:返回集合中指定位置的元素。 * - `public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。 * - `public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 */ public class Listdemo { public static void main(String[] args) { // 创造一个list集合对象 ArrayList list = new ArrayList(); // 使用add方法往里面增加对象 System.out.println(list.size());//增加元素前的个数 list.add("小红"); list.add("小橙"); list.add("小黄"); list.add("小绿"); list.add("小红"); System.out.println(list.size());//增加元素后的个数 System.out.println(list); // public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。 list.add(4,"小青");// 把小青添加到下表为4的位置 [小红, 小橙, 小黄, 小绿, 小青, 小红] System.out.println(list); // public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。 boolean b = list.remove("小橙"); System.out.println(b);//返回是否删除成功 System.out.println(list);//[小红, 小黄, 小绿, 小青, 小红] // public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 Object o = list.set(1, "罗小黑"); System.out.println(o);//返回被替换的对象 System.out.println(list);//[小红, 罗小黑, 小绿, 小青, 小红] // list遍历的三种方法 // 使用public E get(int index)`:返回集合中指定位置的元素。 // 使用for循环 for (int i = 0; i <list.size() ; i++) { Object s = list.get(i); //小红 罗小黑 小绿 小青 小红 System.out.println(s+" "); } System.out.println("======================="); // 使用迭代器iterator Iterator iterator = list.iterator(); while (iterator.hasNext()){//当iterator有下一个元素时,继续输出下一个 Object next = iterator.next(); System.out.println(next); } System.out.println("=================="); // 使用增强for for (Object s : list) { System.out.println(s);//快捷键 集合名.for } } }
2、set接口的特点:
1、不能存储重复的元素
2、没有索引和带索引的方法,不能使用普通的for循环遍历 HashSet 特点
3、无序集合,存储元素和取出来元素的顺序可能不一样
4、底层是一个哈希表结构,查询的速度非常快
package com.company.demo808; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HashSetTest { public static void main(String[] args) { // 创造一个hashset对象 Set<Integer> set = new HashSet<>(); // 使用add方法添加对象 set.add(1); set.add(2); set.add(3); set.add(1); //使用迭代器遍历集合 Iterator<Integer> iterator = set.iterator(); while (iterator.hasNext()){ Integer next = iterator.next(); System.out.println(next); } System.out.println("==================="); // 使用增强for循环遍历集合 for (Integer integer : set) { System.out.println(integer); } } }