java集合笔记二 —— List集合,nginx的负载均衡原理

结果为

在这里插入图片描述

  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 = Ar

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

开源分享完整内容戳这里

rays.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

public boolean equals(Object o) {

if (this == o) return true;

if (o == null || getClass() != o.getClass()) return false;

Student student = (Student) o;

return age == student.age &&

Objects.equals(name, student.name);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值