首页 > 编程知识 正文

list和set和map区别,list和set都是有序集合

时间:2023-05-05 00:49:51 阅读:222237 作者:593

List接口
list允许重复、有序(输入输出顺序) 数组的数据结构(底层维护的是一个数组) 查询快、增删慢
List中常用的子类有两个:
ArrayList:底层维护的是一个数组数据结构,查询快,增删慢
LinkedList:底层维护的是一个链表数据结构,增删快、查询慢
如果查询多就用ArrayList,如果增删多就用LinkedList,如果不知道就选ArrayList,因为往往查询比增删需求多
下面用ArrayList写的一些东西

import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListDome {public static void main(String[] args) {removeMethod();}/** * 通过下标移除元素 */public static void removeMethod(){List list = new ArrayList();list.add("悦耳的茉莉");list.add("巨阙");list.add("鲨齿");list.add(1,"水寒");System.out.println("list:"+list);//这个是插入进去,悦耳的茉莉和巨阙中间//移除指定下标对应的元素list.remove(2);System.out.println("移除后的list"+list);//把巨阙移除了,水寒就顶替了List list2 = new ArrayList();list2.add("灵山");list2.add("震雷山");list2.add("巨阙");//移除两个集合相同的元素,只留第一个集合list.remove(list2);System.out.println("移除后的list"+list);}//这个是两个集合合并,相同的只留一个public static void addMethod(){List list = new ArrayList();list.add("悦耳的茉莉");list.add("巨阙");list.add("鲨齿");list.add(1,"水寒");System.out.println("list:"+list);//移除指定下标对应的元素list.remove(2);System.out.println("移除后的list"+list);List list2 = new ArrayList();list2.add("灵山");list2.add("震雷山");list2.add("巨阙");//移除指定集合list.addAll(1,list2);System.out.println("添加后的list"+list);}/** * list集合中指针查找方向 */public static void listIteratorMethod(){List list = new ArrayList();list.add("悦耳的茉莉");list.add("巨阙");list.add("鲨齿");//获取迭代器ListIterator listIt = list.listIterator();System.out.println("下一个"+listIt.next());System.out.println("下一个"+listIt.next());System.out.println("下一个"+listIt.next()); //后面是倒回来System.out.println("上一个"+listIt.previous());System.out.println("上一个"+listIt.previous());System.out.println("上一个"+listIt.previous());}/** * 在迭代的过程中修改集合中的元素 */public static void listIteratorMethod2(){List list = new ArrayList();list.add("悦耳的茉莉");list.add("巨阙");list.add("鲨齿");//获取迭代器ListIterator listIt = list.listIterator();int i=0;while(listIt.hasNext()){Object obj = listIt.next();if(i%2 != 0){listIt.add("圣"+i+"剑");}else{listIt.add("邪"+i+"剑");}i++;}System.out.println("修改后的集合:"+list);}/** * 获取指定下标对应的元素 */public static void getElementMethod(){List list = new ArrayList();list.add("悦耳的茉莉");list.add("巨阙");list.add("鲨齿");System.out.println("排名第一的是"+list.get(0));}}

Set集合
不允许重复,且不保证输出顺序

import java.util.HashSet;import java.util.Set;public class SetDome {public static void main(String[] args) {method();}/** * 不重复 */public static void method(){Set set = new HashSet();set.add("天问");set.add("悦耳的茉莉");set.add("nxdyb");set.add("含光");set.add("天问");System.out.println(set);}}

[悦耳的茉莉, 含光, 天问, nxdyb]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。