IT源码网

List接口、Set接口

shasha 2021年04月03日 程序员 382 0

list接口:

一个元素存取有序的集合,它是一个带有索引的集合,集合中可以有重复的元素。

import java.util.ArrayList;import java.util.List;

public class Demo01 {   public static void main(String[] args) {     List<String> list=new ArrayList<String>();     list.add("123");     list.add("abc");     //在指定位置插入指定元素     list.add(1,"456");     //删除指定位置上的元素     String s=list.remove(1);     System.out.println("删除的元素为"+s);     //替换指定位置上的元素     String a=list.set(0, "小猪佩奇");     System.out.println("替换的元素为"+a);     //遍历     for(int i=0;i<list.size();i++){       System.out.println(list.get(i));     }   }}

 Iterator的并发修改异常

import java.util.ArrayList;import java.util.Iterator;import java.util.List;

public class Demo02 {   public static void main(String[] args) {     List<String> arr=new ArrayList<String>();     arr.add("a");     arr.add("b");     arr.add("c");     //在遍历时判断该集合中是否有“b”元素,如果有则在该位置添加一个“d”     //获取迭代器对象     Iterator<String> it=arr.iterator();     while(it.hasNext()){       String s=it.next();       if(s.equals("b")){         arr.add("d");       }     }   }}

 List集合存储数据的结构

堆栈、数组、队列、链表

LinkedList集合

LinkedList集合数据存储的结构是链表结构

import java.util.LinkedList;import java.util.List;

public class Demo03 {   public static void main(String[] args) {     LinkedList<String> arr=new LinkedList<String>();     arr.addFirst("a");     arr.addFirst("b");     arr.addLast("c");     arr.addLast("d");     //获取集合中第一个元素     System.out.println("集合中第一个元素为"+arr.getFirst());     //获取集合中最后一个元素     System.out.println("集合中最后一个元素为"+arr.getLast());     //删除集合中第一个元素     arr.removeFirst();     arr.removeFirst();     //删除集合中最后一个元素     arr.removeLast();     for(String s:arr){     System.out.println(s);   }     if(!arr.isEmpty()){       System.out.println("该集合不为空");     }   }}

Vector集合

Vector集合数据存储的结构是数组结构,为JDK中最早提供的集合。

取出方式:枚举Enumeration。

Vector集合已被ArrayList替代,枚举Enumeration已被迭代器Iterator替代。

 

 

set接口

HashSet集合:此类实现Set接口,由哈希表支持(实际上是一个 HashMap集合)。HashSet集合不能保证的迭代顺序与元素存储顺序相同。

保证HashSet集合元素的唯一,其实就是根据对象的hashCode和equals方法来决定的。

import java.util.HashSet;

public class Demo01 {   public static void main(String[] args) {     HashSet<String> set=new HashSet<String>();     set.add("a");     set.add("a");     set.add("b");     //遍历     for(String s:set){       System.out.println(s);     }   }}

public class Demo02 {   public static void main(String[] args) {     String a="abc";     String b="abc";     System.out.println(a.hashCode());     System.out.println(b.hashCode());   }}

public class Demo04 {   public static void main(String[] args) {     LinkedHashSet<String> set=new LinkedHashSet<String>();     set.add("abc");     set.add("aaa");     set.add("bcd");     set.add("abc");     for(String s:set){       System.out.println(s);     }   }}

 

转载于:https://www.cnblogs.com/boss-H/p/10958945.html


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!