java集合笔记二 —— List集合(概念方法,list集合去重,模拟栈结构)

结果为

在这里插入图片描述

  1. 获取指定索引的元素 get(int index)

import java.util.*;

public class ListDemo3 {

public static void main(String[] args) {

List fruits = new ArrayList<>();

fruits.add(“apple”);

fruits.add(“banana”);

fruits.add(“grape”);

System.out.println(fruits.get(0)); //apple

System.out.println(fruits.get(1)); //banana

}

}

  1. set(int index,Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值

import java.util.ArrayList;

import java.util.List;

public class demo10 {

public static void main(String[] args) {

List fruits = new ArrayList<>();

fruits.add(“apple”);

fruits.add(“banana”);

fruits.add(“grape”);

System.out.println(fruits.set(1,“pear”)); //banana

System.out.println(fruits.get(1)); //pear

}

}

  1. 判断该元素集合中是否存在

import java.util.ArrayList;

import java.util.List;

public class demo10 {

public static void main(String[] args) {

List fruits = new ArrayList<>();

fruits.add(“apple”);

fruits.add(“banana”);

fruits.add(“grape”);

System.out.println(fruits.contains(“pear”)); //false

System.out.println(fruits.contains(“apple”)); //true

}

}

  1. 删除指定位置的元素

package review.ListDemo1;

import java.util.ArrayList;

import java.util.List;

public class demo10 {

public static void main(String[] args) {

List fruits = new ArrayList<>();

fruits.add(“apple”);

fruits.add(“banana”);

fruits.add(2,“pear”);

for(String s : fruits){

System.out.println(s);

}

System.out.println();

fruits.remove(2);

for(String s : fruits){

System.out.println(s);

}

}

}

结果为

在这里插入图片描述

Arrays.asList

Arrays.asList的作用是将数组转化为list,一般用于List集合的初始化,简化代码

  1. 该方法不适用于基本数据类型(比如int,double等)

  2. Arrays.asList生成的List集合不支持add(),remove(),clear()等方法,即Arrays.asList生成的List集合长度不可改变

  3. Arrays.asList会将数组与List集合链接起来,更新数组或者集合时,另一个也会随之更新

import java.util.Arrays;

import java.util.List;

public class test1 {

public static void main(String[] args) {

//往List集合中添加类的对象

List list = Arrays.asList(

new Student(“zhang”,12),

new Student(“zhao”,15)

);

for(int i=0;i<list.size();i++){

System.out.println(list.get(i));

}

System.out.println(“—”+list.size());

System.out.println(“============”);

//将String数组中的值放入List集合

String[] s = {“a”,“b”,“c”};

List list1 = Arrays.asList(s);

for(String ss:list1){

System.out.println(ss);

}

System.out.println(“—”+list1.size());

System.out.println(“============”);

//将Integer数组中的值放入List集合

Integer[] i = {1,2,3};

List list2 = Arrays.asList(i);

for(Integer ii:list2){

System.out.println(ii);

}

System.out.println(“============”);

//直接像这样把值写进括号里面也可以

List list3 = Arrays.asList(“a”,“b”,“c”);

System.out.println(list3.toString());

}

}

import java.util.Arrays;

import java.util.List;

public class test2 {

public static void main(String[] args) {

//数组与List集合链接起来,更新任何一个,另一个都会随之改变

String[] s = {“a”,“b”,“c”,“d”};

List list = Arrays.asList(s);

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

System.out.println(“==============”);

//更改List集合

list.set(0,“e”);

//分别打印list集合和数组s

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

System.out.println(Arrays.toString(s));

System.out.println(“==============”);

//更改数组

s[1] = “f”;

//分别打印list集合和数组s

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

System.out.println(Arrays.toString(s));

}

}

结果为

在这里插入图片描述

遍历List集合

package review.ListDemo1;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

public class test3 {

public static void main(String[] args) {

List list = new ArrayList();

list.add(“aaa”);

list.add(“bbb”);

list.add(“ccc”);

//遍历List集合

// 方式一、增强for循环

for(String ss : list){

System.out.println(ss);

}

//方式二、get方法与size方法相结合

for(int i=0;i<list.size();i++){

System.out.println(list.get(i));

}

//方式三、iterator迭代器遍历

Iterator it = list.iterator();

while(it.hasNext()){

System.out.println(it.next());

}

}

}

LinkedList类概述

底层数据结构是链表,查询慢,增删快

线程不安全,效率高

LinkedList的特有功能:

  1. 添加功能:

public void addFirst(Object obj):在该集合开头插入指定的元素

public void addLast(Object obj)将指定的元素追加到此列表的末尾。// 这个方法相当于add(Object) 。

  1. 获取功能:

public Object getFirst():返回此集合中的第一个元素。

getLast():返回此列表中的最后一个元素。

  1. 删除功能:

public Object removeFirst():移除集合中第一个元素

public Object removeLast():移除集合中最后一个元素

import java.util.LinkedList;

public class demo10 {

public static void main(String[] args) {

LinkedList linkedList = new LinkedList();

//add()添加元素

linkedList.add(“hadoop”);

linkedList.add(“hive”);

linkedList.add(“flink”);

System.out.println(linkedList.toString()); //[hadoop, hive, flink]

//addFirst(Object obj) 在该集合开头插入指定的元素

linkedList.addFirst(“apple”);

System.out.println(linkedList.toString()); //[apple, hadoop, hive, flink]

//addLast(Object obj)将指定的元素追加到此列表的末尾

linkedList.addLast(“pear”);

System.out.println(linkedList.toString()); //[apple, hadoop, hive, flink, pear]

//getFirst() 返回此集合中的第一个元素

System.out.println(linkedList.getFirst()); //apple

//getLast() 返回此列表中的最后一个元素

System.out.println(linkedList.getLast()); //pear

//removeFirst() 移除集合中第一个元素,返回被删除的元素

System.out.println(linkedList.removeFirst()); //apple

System.out.println(linkedList.toString()); //[hadoop, hive, flink, pear]

//removeLast() 移除集合中最后一个元素,返回被删除的元素

System.out.println(linkedList.removeLast()); //pear

System.out.println(linkedList.toString()); //[hadoop, hive, flink]

}

}

list的相关操作

list集合去重
方式一、利用一个新集合去重

package review.ListDemo1;

import java.util.ArrayList;

import java.util.List;

public class demo7 {

public static void main(String[] args) {

List list1 = new ArrayList();

list1.add(“hadoop”);

list1.add(“hive”);

list1.add(“spark”);

list1.add(“hadoop”);

list1.add(“hadoop”);

List list2 = new ArrayList();

for(int i=0;i< list1.size();i++){

if(!list2.contains(list1.get(i))){

list2.add(list1.get(i));

}

}

System.out.println(list2.toString());

}

}

在这里插入图片描述

这里的思路是写一个新的list2集合,然后for循环遍历list1,如果list2中没有包含list1的这个元素list1.get(i),则将这个元素加入到list1中。如果list2集合中包含这个元素,则不加入。

方式二、在原集合上操作

package review.ListDemo1;

import java.util.Objects;

public class Student {

private String name;

private int age;

public Student() {

}

public Student(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return “Student{” +

“name='” + name + ‘’’ +

“, age=” + age +

‘}’;

}

public void printD(){

System.out.println(“test”);

}

public String toStringTest(){

return “Student{” +

“name='” + name + ‘’’ +

“, age=” + age +

‘}’;

}

@Override

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
ing toStringTest(){

return “Student{” +

“name='” + name + ‘’’ +

“, age=” + age +

‘}’;

}

@Override

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-jqsTLKwz-1715779234672)]

[外链图片转存中…(img-jtn4dzra-1715779234673)]

[外链图片转存中…(img-4EqPyRIp-1715779234674)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值