java47

Wesley13
• 阅读 664

1.java47 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集合删除元素并发异常 java47 不可直接改变集合的结构 在ArrayList中每次调用next时(输出下一个元素),都会判断modCount != expectedModCount 如果不相等则会抛出异常 modCount :集合修改次数 expectedModCount :迭代器中记录的集合修改的次数 java47 而调用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数据结构分析 查找比较快 添加删除比较慢 java47 java47 ####去除一个集合中的重复元素

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]】
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
javaAPI_集合基础_List
List集合1.list集合以及其特点list集合是有序的,且可重复的。有序是指:存储的是什么那么遍历出来的也就是什么。2.list集合特有的功能(1).添加功能voidadd(intindex,objectelement):在指定位置添加元素(2).获取功能Objectget(intind
Wesley13 Wesley13
3年前
JAVA之forEach遍历集合
JAVA之forEach遍历集合在JDK8中,根据Lambda表达式的特性还增加了一个forEach(Consumeraction)方法来遍历集合,该方法所需要的参数是一个函数式接口importjava.util.ArrayList;importjava.util.List;
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
mysql系列(三)——mysql架构与存储引擎
一、MySql逻辑架构!(https://oscimg.oschina.net/oscnet/up35e1824330cd1df7ac66652b9b1dbc41965.png)1.连接层!(https://oscimg.oschina.net/oscnet/up272cb2634e262cc2df52220a063
Wesley13 Wesley13
3年前
IM消息系统的设计和实现
点击关注上方“JAVA开发大本营”,设为“置顶或星标”,第一时间送达技术干货。!(https://oscimg.oschina.net/oscnet/6cc35fe4f21c47a2b27b53fbdd52d064.png)全文预计阅读6分钟!(https://osci
Stella981 Stella981
3年前
ClickHouse大数据领域企业级应用实践和探索总结
点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源!(https://oscimg.oschina.net/oscnet/bb00e5f54a164cb9827f1dbccdf87443.jpg)!(https://oscimg.oschina.net/oscnet/dc8da835ff1b4
Stella981 Stella981
3年前
Linux 是如何管理内存的?
点击蓝色“Java建设者”关注我哟加个“星标”,及时阅读最新技术文章!(https://oscimg.oschina.net/oscnet/df3cbbbafd5ae35c3c30f1b0081db3e740f.png)这是Java建设者第106篇原创文章Linux内存管理模型非常直接明了,因为Lin
Stella981 Stella981
3年前
Js使用面向对象和面向过程的方法实现拖拽物体的效果
1.面向过程的拖拽实现代码:!(https://oscimg.oschina.net/oscnet/d680c759957babef2fec0902676eaa35ad9.gif)<!DOCTYPEhtml<html<head<titledragDiv</title