zoukankan      html  css  js  c++  java
  • java47

    1.
    1.List集合根据角标获取元素

    import java.util.ArrayList;
    import java.util.List;
    
    public class List集合 {
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void main(String[] args) {
    	List list = new ArrayList();
    	list.add("a");
    	list.add("b");
    	list.add("c");
    	System.out.println(list);
    	//在集合中插入数据
    	list.add(1,"WW");
    	System.out.println(list);//index<=数据长度
    	//获取指定角标的元素
    	System.out.println(list.get(2));
    	//遍历list集合
    	System.out.println("---------------------");
    	for(int i=0;i<list.size();i++) {
    		System.out.println(list.get(i));
    	}
    }
    }
    【
    [a, b, c]
    [a, WW, b, c]
    b
    ---------------------
    a
    WW
    b
    c
    】
    

    · List集合删除元素并发异常

    不可直接改变集合的结构
    在ArrayList中每次调用next时(输出下一个元素),都会判断modCount != expectedModCount
    如果不相等则会抛出异常
    modCount :集合修改次数
    expectedModCount :迭代器中记录的集合修改的次数

    而调用it.remove();它则会让modCount = expectedModCount
    若想添加元素,不能借助迭代器

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.ListIterator;
    
    public class 并发异常 {
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public static void main(String[] args) {
    ·List集合删除元素并发异常
    	List list = new ArrayList();
    	list.add("1");
    	list.add("2");
    	list.add("3");
    	//删除集合中的数字2
    	Iterator it =list.iterator();
    	//1.确定是否还有元素
    	while (it.hasNext()) {
    		//2.取出元素
    		String str = (String)it.next();
    			//3.找到元素2
    			if(str.equals("2")) {
    				//4.删除元素2
    				//list.remove("2");
    				it.remove();	
    		}
    	}
    	System.out.println(list);
    【[1, 3]】
    
    ·List集合添加元素并发异常
    	ListIterator it2 = list.listIterator();
    	while(it2.hasNext()) {
    		String str2 = (String)it2.next();
    		if(str2.equals("1")) {//在此元素之后添加数据
    			it2.add("456");
    		}
    	}
    	System.out.println(list);
    }
    }
    【[1, 456, 3]】
    
    · ListIterator的向前遍历集合方法
    	while(it2.hasPrevious()) {
    		System.out.print("preindex = "+ it2.previousIndex());
    		System.out.println(",元素为" + it2.previous());
    	}
    【preindex = 2,元素为3
    preindex = 1,元素为456
    preindex = 0,元素为1
    】
    

    ArrayList数据结构分析

    查找比较快
    添加删除比较慢

    去除一个集合中的重复元素

    import java.util.ArrayList;
    import java.util.ListIterator;
    
    public class 去除重复元素 {
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public static void main(String[] args) {
    	ArrayList al = new ArrayList();
    	al.add("a");
    	al.add("a");
    	al.add("b");
    	al.add("b");
    	al.add("c");
    	al.add("e");
    	//创建一个空的集合
    	ArrayList al2 = new ArrayList();
    	//取出每一个元素(遍历)
    	ListIterator it = al.listIterator();
    	while(it.hasNext()) {
    		//每取出一个元素,要判断新集合中是否有相同元素 
    		Object obj = it.next();
    		//如果没有重复,则放入新集合
    		if(!al2.contains(obj)) {
    			al2.add(obj);
    		}
    	}
    	System.out.println(al2);	
    }
    }
    【[a, b, c, e]】
    

    可以将此写成一个工具类

    import java.util.ArrayList;
    import java.util.ListIterator;
    
    public class 去除重复元素 {
    	static ArrayList getSingle(ArrayList al) {
    		//创建一个空的集合
    		ArrayList al2 = new ArrayList();
    		//取出每一个元素(遍历)
    		ListIterator it = al.listIterator();
    		while(it.hasNext()) {
    			//没取出一个元素,要判断新集合中是否有相同元素 
    			Object obj = it.next();
    			//如果没有重复,则放入新集合
    			if(!al2.contains(obj)) {
    				al2.add(obj);
    			}
    		}
    		//System.out.println(al2);
    		return al2;
    	}
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public static void main(String[] args) {
    	ArrayList al = new ArrayList();
    	al.add("a");
    	al.add("a");
    	al.add("b");
    	al.add("b");
    	al.add("c");
    	al.add("e");
    	ArrayList list = getSingle(al);
    	System.out.println(list);
    	ArrayList al2 = new ArrayList();
    	al2.add("a");
    	al2.add("a");
    	al2.add("c");
    	al2.add("c");
    	al2.add("e");
    	ArrayList list2 = getSingle(al2);
    	System.out.println(list2);
    }
    }
    【[a, b, c, e]
    [a, c, e]】
    
  • 相关阅读:
    Get-CrmSetting返回Unable to connect to the remote server的解决办法
    Dynamics 365中的常用Associate和Disassociate消息汇总
    Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法
    Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
    Dynamics 365检查工作流、SDK插件步骤是否选中运行成功后自动删除系统作业记录
    注意,更改团队所属业务部门用Update消息无效!
    Dynamics 365的审核日志分区删除超时报错怎么办?
    Dynamics 365使用Execute Multiple Request删除系统作业实体记录
    Dynamics 365的系统作业实体记录增长太快怎么回事?
    Dynamics CRM日期字段查询使用时分秒的方法
  • 原文地址:https://www.cnblogs.com/-zero/p/11379296.html
Copyright © 2011-2022 走看看