List,linkedlist,HashSet

List,linkedlist,HashSet

list

list的四种特定方法
1.add(int index, E element)
将指定的元素插入此列表中的指定位置(可选操作)。
2.get(int index)
返回此列表中指定位置的元素。
3.remove(int index)
删除该列表中指定位置的元素(可选操作)
4.set(int index, E element)
用指定的元素(可选操作)替换此列表中指定位置的元素。
list特点:
有序集合(也称为序列 )。 该界面的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。
与集合不同,列表通常允许重复的元素。

代码:

public class Demo01List {
public static void main(String[] args) {
    List<String> list=new ArrayList<>();
    list.add("恶贯满盈");
    list.add("无恶不作");
    list.add("凶神恶煞");
    //list.add("穷凶极恶");
    //1.add(int index, E element)
    //将指定的元素插入此列表中的指定位置(可选操作)。
    list.add(3,"穷凶极恶");
    list.add("四大恶人");
    System.out.println(list);//[恶贯满盈, 无恶不作, 凶神恶煞, 穷凶极恶, 四大恶人]
    //2.get(int index)
    //返回此列表中指定位置的元素。
    String s = list.get(1);
    System.out.println(s);//无恶不作
    //3.remove(int index)
    //删除该列表中指定位置的元素(可选操作)
    String remove = list.remove(4);
    System.out.println(remove);
    System.out.println(list);
    //4.set(int index, E element)
    //用指定的元素(可选操作)替换此列表中指定位置的元素。
    String set = list.set(0, "无恶不作,段延庆");
    System.out.println(set);
    System.out.println(list);
   //list遍历的三种方式:
    //1.foreach
    for (String str:
         list) {System.out.println(str);

    }
    //使用迭代器
    System.out.println("====================================================");
    Iterator<String> it = list.iterator();
    while (it.hasNext())
        System.out.println(it.next());
    //普通for循环
    System.out.println("====================================================");
    for (int i = 0; i < list.size(); i++) {
        String s1 = list.get(i);
        System.out.println(s1);
    }
    String s2 = list.get(5);
    System.out.println(s2);//Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 4越界异常!
}
}

// 显示效果上面已给出

LinkedList

继承list接口
特点是查询慢,增删快,里面含有大量操作首尾元素的方法。
注意:使用linkedlist集合特有的方法,不能使用多态。
方法下面代码有介绍:
代码:

public class Demo02LinkedList {
public static void main(String[] args) {
    //show01();
    //show02();
    show03();
}

private static void show03() {
    //移除元素
    LinkedList<String> linked = new LinkedList<>();
    linked.add("武侠小说:");
    linked.add("金庸小说:");
    linked.add("天龙八部");
    linked.add("射雕英雄传");
    linked.add("神雕侠侣");
    System.out.println("移除前的linkedlist"+linked);
    //removeFirst()
    //从此列表中删除并返回第一个元素。
    String first = linked.removeFirst();
    System.out.println("移除的首元素为:"+first);
    //removeLast()
    //从此列表中删除并返回最后一个元素。
    String last = linked.removeLast();
    System.out.println("移除的尾元素为:"+last);
    //pop()
    //从此列表表示的堆栈中弹出一个元素。
    String pop = linked.pop();//相当于removeFirst
    System.out.println("移除的首元素为:"+pop);
    System.out.println("移除后的linkedlist"+linked);
}

private static void show02() {
    //查看元素
    LinkedList<String> linked = new LinkedList<>();
    linked.add("武侠小说:");
    linked.add("金庸小说:");
    linked.add("天龙八部");
    linked.add("射雕英雄传");
    linked.add("神雕侠侣");
    //linked.clear();清空
    if(!linked.isEmpty())
    {
        //getFirst()
        //返回此列表中的第一个元素。
        String first = linked.getFirst();//没有元素异常,加限制!
        System.out.println(first);
//getLast()
        //返回此列表中的最后一个元素
        String last = linked.getLast();
        System.out.println(last);
    }
    System.out.println(linked);
}
private static void show01() {
    //增加元素
    LinkedList<String> linked = new LinkedList<>();
    linked.add("武侠小说:");
    linked.add("金庸小说:");
    linked.add("天龙八部");
    linked.add("射雕英雄传");
    linked.add("神雕侠侣");
    System.out.println(linked);
    //addFirst(E e)
    //在该列表开头插入指定的元素
    linked.addFirst("小说:");
    //addLast(E e)
    //将指定的元素追加到此列表的末尾。
    linked.addLast("倚天屠龙记");
    //push(E e)
    //将元素推送到由此列表表示的堆栈上。相当于:addFirst(E e)
    linked.push("中国");
    System.out.println(linked);
}
}

显示效果

移除前的linkedlist[武侠小说:, 金庸小说:, 天龙八部, 射雕英雄传, 神雕侠侣]
移除的首元素为:武侠小说:
移除的尾元素为:神雕侠侣
移除的首元素为:金庸小说:
移除后的linkedlist[天龙八部, 射雕英雄传]

HashSet

set接口
特点:不包含重复元素的集合。 没有索引,没有带索引的方法,也不能使用普通的for循环遍历
HashSet集合implements Set接口
1.不允许重复存储的元素
2.没有索引,同set
3.是一个无序集合,存储和取出可能不一致
4.底层是一个哈希表结构

代码:

public class Demo03HashSet {
public static void main(String[] args) {
    Set<Integer> set = new HashSet<>();
    set.add(1);
    set.add(3);
    set.add(5);
    set.add(7);
    set.add(9);
    set.add(2);
    set.add(4);
    set.add(6);
    set.add(8);
    set.add(10);
    set.add(1);
    set.add(3);
    set.add(5);
    Iterator<Integer> it = set.iterator();
    while (it.hasNext())
        System.out.println(it.next());
    System.out.println("------------------------------");
    for (Integer in:set
         ) {
        System.out.println(in);
    }
}
}

显示效果

1
2
3
4
5
6
7
8
9
10

1
2
3
4
5
6
7
8
9
10
jdk1.9新特性
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值