Java基础十五

1 ArrayList类

1.1 ArrayList类概述

  • 底层数据结构是数组,查询快,增加和删除慢。
  • 线程不安全,效率高。

1.2 ArrayList的应用

  • 示例:
package com.xuweiwei;

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

public class ArrayListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("hello");
        list.add("world");
        list.add("java");

        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }

    }
}
  • 示例:
package com.xuweiwei;

public class Student {
    private String name;
    private Integer age;

    public Student() {
    }

    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
package com.xuweiwei;

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

public class ArrayListDemo2 {
    public static void main(String[] args) {
        List<Student> list = new ArrayList<>();

        list.add(new Student("张三",20));
        list.add(new Student("李四",22));

        for(Iterator<Student> iterator = list.iterator();iterator.hasNext();){
            Student student = iterator.next();
            System.out.println(student);
        }

    }
}

2 Vector的特有功能

  • 方法:添加元素
public void addElement(E obj)
  • 方法:返回指定索引处的元素
public E elementAt(int index)
  • 方法:返回此集合的枚举
public Enumeration<E> elements()
  • 示例:
package com.xuweiwei;

import java.util.Vector;

public class VectorDemo1 {
    public static void main(String[] args) {
        Vector<String> vector = new Vector<>();

        vector.add("hello");
        vector.add("java");

        for (int i = 0; i < vector.size(); i++) {
            String str = vector.elementAt(i);
            System.out.println(str);
        }

    }
}
  • 示例:
package com.xuweiwei;

import java.util.Enumeration;
import java.util.Vector;

public class VectorDemo2 {
    public static void main(String[] args) {
        Vector<String> vector = new Vector<>();

        vector.add("hello");
        vector.add("java");

        for (Enumeration<String> enumeration = vector.elements(); enumeration.hasMoreElements(); ) {
            String str = enumeration.nextElement();
            System.out.println(str);
        }

    }
}

3 LinkedList的特有功能

  • 方法:将指定的元素插入到链表的开头
public void addFirst(E e)
  • 方法:将指定的元素插入到链表的结尾
public void addLast(E e)
  • 方法:获取链表的第一个元素
public E getFirst()
  • 方法:获取链表的最后一个元素
public E getLast()
  • 方法:移除链表的第一个元素
public E removeFirst()
  • 方法:移除链表的最后一个元素
public E removeLast()
  • 示例:
package com.xuweiwei;

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        list.add("hello");
        list.add("world");

        System.out.println(list);

        list.addFirst("java");

        System.out.println(list);
    }
}
  • 示例:
package com.xuweiwei;

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        list.add("hello");
        list.add("world");

        System.out.println(list);

        list.addLast("java");

        System.out.println(list);
    }
}
  • 示例:
package com.xuweiwei;

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        list.add("hello");
        list.add("world");

        System.out.println(list);

        System.out.println(list.getFirst());
    }
}
  • 示例:
package com.xuweiwei;

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        list.add("hello");
        list.add("world");

        System.out.println(list);

        System.out.println(list.getLast());
    }
}
  • 示例:
package com.xuweiwei;

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        list.add("hello");
        list.add("world");

        System.out.println(list);

        System.out.println(list.removeFirst());

        System.out.println(list);
    }
}
  • 示例:
package com.xuweiwei;

import java.util.LinkedList;

public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        list.add("hello");
        list.add("world");

        System.out.println(list);

        System.out.println(list.removeLast());

        System.out.println(list);
    }
}

4 ArrayList去重

4.1 去除ArrayList中字符串的重复值

  • 示例:
package com.xuweiwei;

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

public class ArrayListDemo4 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("a");
        list.add("b");
        list.add("aa");
        list.add("ba");
        list.add("b");

        List<String> target = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);

            if(!target.contains(str)){
                target.add(str);
            }
        }

        //遍历target
        for (int i = 0; i < target.size(); i++) {
            String str = target.get(i);
            System.out.println(str);
        }

    }
}
  • 示例:
package com.xuweiwei;

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

public class ArrayListDemo4 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("a");
        list.add("b");
        list.add("aa");
        list.add("ba");
        list.add("b");
        list.add("b");
        list.add("b");

        System.out.println(list);

        //选择排序思想
        for (int x = 0; x < list.size() - 1; x++){
            for(int y = x+1;y<list.size();y++){
                if(list.get(x).equals(list.get(y)) ){
                    list.remove(y);
                    y--;
                }
            }
        }

        System.out.println(list);
    }
}

4.2 去除ArrayList中自定义对象的重复值(对象的成员变量值要都相同)

  • 示例:
package com.xuweiwei;

import java.util.Objects;

public class Student {
    private String name;
    private Integer age;

    public Student() {
    }

    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return Objects.equals(name, student.name) &&
                Objects.equals(age, student.age);
    }

    @Override
    public int hashCode() {

        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "Student{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}
package com.xuweiwei;

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

public class ArrayListDemo5 {
    public static void main(String[] args) {
        List<Student> old = new ArrayList<>();

        old.add(new Student("张三丰",20));
        old.add(new Student("张三丰",20));
        old.add(new Student("张三丰",21));
        old.add(new Student("李四",21));
        old.add(new Student("王五",21));

        List<Student> newList = new ArrayList<>();

        for(Iterator<Student> iterator = old.iterator();iterator.hasNext();){
            Student stu = iterator.next();
            if(!newList.contains(stu)){
                newList.add(stu);
            }
        }

        System.out.println(newList);

    }
}

5

原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/9338869.html

时间: 2024-11-05 14:37:46

Java基础十五的相关文章

Java基础十二--多态是成员的特点

Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println(f.num);//是父类,答案是3 2,成员函数(非静态). 编译看左边,运行看右边. 因为成员函数存在覆盖特性. Fu f = new Zi();//f.show();输出的是子类里面的show方法 3,静态函数. 编译和运行都看左边. 静态函数不具备多态性,多态性是对象的多态性,然后静态函数不涉

Java基础十--接口

Java基础十--接口 一.接口的定义和实例 1 /* 2 abstract class AbsDemo 3 { 4 abstract void show1(); 5 abstract void show2(); 6 } 7 8 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 9 另一种形式定义和表示,就是 接口 interface. 10 */ 11 12 //定义接口使用的关键字不是class,是interface. 13 //interface编译后还是.class文件,其实本质

Bootstrap&lt;基础十五&gt; 输入框组

Bootstrap 支持的另一个特性,输入框组.输入框组扩展自 表单控件.使用输入框组,可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮. 通过向输入域添加前缀和后缀的内容,您可以向用户输入添加公共的元素.例如,可以添加美元符号,或者在 Twitter 用户名前添加 @,或者应用程序接口所需要的其他公共的元素. 向 .form-control 添加前缀或后缀元素的步骤如下: 把前缀后后缀元素放在一个带有 class .input-group 的 <div> 中. 接着,在相同的 &

java(第十五章)

第十五章 一.字符串类String 1.String是一个类,位于java.lang包中 2.创建一个字符串对象的2种方式: String 变量名="值"; String 对象名=new String("值"); 3.字符串的常用方法 3.1 字符串长度--length() 3.2 判断值是否相等 equals() 3.3 判断字符串对象地址是否相同 == 3.4 忽略 大小写 判断 equalsIgnoreCase() 3.5 大小写转换 toLowerCase(

零基础入门学习java第十五节:对象的比较

这一篇主要讲讲对象的比较,什么是对象的比较,我们知道两个数值类型只需要用“==”符号即可进行相等判断,但如果是两个Goods对象呢?如何进行比较?这时候,我们的equals方法就派上用场了.equals方法是类的祖先Object类的另一个protected方法,既然是protected方法(能被同一个包里的所有类所访问, 能被该类的子类所访问,子类可以和父类不在一个包中),子类是可以直接访问的,但如果没有覆盖该方法,那么使用的只是Object的原始比较方法,return(this==obj) ,

Java之十五 JDBC编程

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用.同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言"编写一次,处处运行"的优势. Java数

再回首Java第十五天

类的加载 当程序主动使用某个类是,如果该类还没有被加载到内存中,系统就会通过加载.链接.初始化三个步骤对该类进行初始化,如果没有意外,JVM就会完成这三个步骤,所以有时也把这三个步骤称为类的加载和类的初始化. 类的加载是指将类的class文件读入内存,并为之创建一个java.lang.Class对象,也就是说当程序中使用任何类时,系统都会为之创建一个java.lang.Class对象 类的加载由类的加载器完成,类加载器通常由JVM提供,这些类加载器是程序运行的基础,JVM提供的加载器其称为系统加

Java基础--第五天

教学流程: 循环语句[for  while  do while]-----循环嵌套----实例应用 内容总结: 1:循环 (1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码.  让代码百年的简洁 (2)循环的组成 A:循环体,就是要做的事情. B:初始化条件.一般定义的是一个初始变量 C:判断条件.用于控制循环的结束. D:控制条件.用于控制变量的变化.一般都是一个++/--操作. (3)循环的分类: A:for for(初始化条件;判断条件;控制条件) { 循环体; } 执行流

java(十五)

HTML 1.html是超文本标记语言的简写,是最基础的网页语言. 2.html是通过标签来定义的语言,代码都是由标签所组成. 3.html代码不用区分大小写. 4.html代码由<html>开始,</html>结束.里面由头部分<head></head>和体部分<body></body>组成. <html> <head> <title>这是一个网页的标题.</title> </h