java中list的用法和实例讲解

目录:

list中添加,获取,删除元素;
list中是否包含某个元素;
list中根据索引将元素数值改变(替换);
list中查看(判断)元素的索引;
根据元素索引位置进行的判断;
利用list中索引位置重新生成一个新的list(截取集合);
对比两个list中的所有元素;
判断list是否为空;
返回Iterator集合对象;
将集合转换为字符串;
将集合转换为数组;
集合类型转换;
去重复;

备注:内容中代码具有关联性。

1.list中添加,获取,删除元素;

  添加方法是:.add(e);  获取方法是:.get(index);  删除方法是:.remove(index); 按照索引删除;  .remove(Object o); 按照元素内容删除;

  List<String> person=new ArrayList<>();
  person.add("jackie"); //索引为0 //.add(e)
  person.add("peter"); //索引为1
  person.add("annie"); //索引为2
  person.add("martin"); //索引为3
  person.add("marry"); //索引为4

  person.remove(3); //.remove(index)
  person.remove("marry"); //.remove(Object o)

  String per="";
  per=person.get(1);
  System.out.println(per); ////.get(index)

  for (int i = 0; i < person.size(); i++) {
  System.out.println(person.get(i)); //.get(index)
  }

2.list中是否包含某个元素;

  方法:.contains(Object o); 返回true或者false

  List<String> fruits=new ArrayList<>();
  fruits.add("苹果");
  fruits.add("香蕉");
  fruits.add("桃子");
  //for循环遍历list
  for (int i = 0; i < fruits.size(); i++) {
  System.out.println(fruits.get(i));
  }
  String appleString="苹果";
  //true or false
  System.out.println("fruits中是否包含苹果:"+fruits.contains(appleString));

  if (fruits.contains(appleString)) {
  System.out.println("我喜欢吃苹果");
  }else {
  System.out.println("我不开心");
  }

3.list中根据索引将元素数值改变(替换);

  注意 .set(index, element); 和 .add(index, element); 的不同;

  String a="白龙马", b="沙和尚", c="八戒", d="唐僧", e="悟空";
  List<String> people=new ArrayList<>();
  people.add(a);
  people.add(b);
  people.add(c);
  people.set(0, d); //.set(index, element); //将d唐僧放到list中索引为0的位置,替换a白龙马
  people.add(1, e); //.add(index, element); //将e悟空放到list中索引为1的位置,原来位置的b沙和尚后移一位

  //增强for循环遍历list
  for(String str:people){
  System.out.println(str);
  }

4.list中查看(判断)元素的索引;  

  注意:.indexOf(); 和 lastIndexOf()的不同;

  List<String> names=new ArrayList<>();
  names.add("刘备"); //索引为0
  names.add("关羽"); //索引为1
  names.add("张飞"); //索引为2
  names.add("刘备"); //索引为3
  names.add("张飞"); //索引为4
  System.out.println(names.indexOf("刘备"));
  System.out.println(names.lastIndexOf("刘备"));
  System.out.println(names.indexOf("张飞"));
  System.out.println(names.lastIndexOf("张飞"));

5.根据元素索引位置进行的判断;

if (names.indexOf("刘备")==0) {
 System.out.println("刘备在这里");
}else if (names.lastIndexOf("刘备")==3) {
 System.out.println("刘备在那里");
}else {
 System.out.println("刘备到底在哪里?");
}

6.利用list中索引位置重新生成一个新的list(截取集合);

  方法: .subList(fromIndex, toIndex);  .size() ; 该方法得到list中的元素数的和

  List<String> phone=new ArrayList<>();
  phone.add("三星"); //索引为0
  phone.add("苹果"); //索引为1
  phone.add("锤子"); //索引为2
  phone.add("华为"); //索引为3
  phone.add("小米"); //索引为4
  //原list进行遍历
  for(String pho:phone){
  System.out.println(pho);
  }
  //生成新list
  phone=phone.subList(1, 4); //.subList(fromIndex, toIndex) //利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3
  for (int i = 0; i < phone.size(); i++) { // phone.size() 该方法得到list中的元素数的和
  System.out.println("新的list包含的元素是"+phone.get(i));
  }

7.对比两个list中的所有元素;

  //两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象

//1.<br>if (person.equals(fruits)) {
 System.out.println("两个list中的所有元素相同");
}else {
 System.out.println("两个list中的所有元素不一样");
}
//2.
if (person.hashCode()==fruits.hashCode()) {
 System.out.println("我们相同");
}else {
 System.out.println("我们不一样");
}

8.判断list是否为空;

  //空则返回true,非空则返回false

if (person.isEmpty()) {
 System.out.println("空的");
}else {
 System.out.println("不是空的");
}

9.返回Iterator集合对象;

System.out.println("返回Iterator集合对象:"+person.iterator());

10.将集合转换为字符串;

String liString="";
liString=person.toString();
System.out.println("将集合转换为字符串:"+liString);

11.将集合转换为数组;

System.out.println("将集合转换为数组:"+person.toArray());

12.集合类型转换;

//1.默认类型
List<Object> listsStrings=new ArrayList<>();
  for (int i = 0; i < person.size(); i++) {
 listsStrings.add(person.get(i));
}
//2.指定类型
List<StringBuffer> lst=new ArrayList<>();
  for(String string:person){
  lst.add(StringBuffer(string));
}

13.去重复;

  List<String> lst1=new ArrayList<>();
  lst1.add("aa");
  lst1.add("dd");
  lst1.add("ss");
  lst1.add("aa");
  lst1.add("ss");

   //方法 1.
  for (int i = 0; i <lst1.size()-1; i++) {
  for (int j = lst1.size()-1; j >i; j--) {
   if (lst1.get(j).equals(lst1.get(i))) {
   lst1.remove(j);
   }
  }
  }
  System.out.println(lst1);

   //方法 2.
  List<String> lst2=new ArrayList<>();
  for (String s:lst1) {
  if (Collections.frequency(lst2, s)<1) {
   lst2.add(s);
  }
  }
  System.out.println(lst2);

附完整代码

package MyTest01;

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

public class ListTest01 {

 public static void main(String[] args) {

  //list中添加,获取,删除元素
  List<String> person=new ArrayList<>();
  person.add("jackie"); //索引为0 //.add(e)
  person.add("peter"); //索引为1
  person.add("annie"); //索引为2
  person.add("martin"); //索引为3
  person.add("marry"); //索引为4

  person.remove(3); //.remove(index)
  person.remove("marry"); //.remove(Object o)

  String per="";
  per=person.get(1);
  System.out.println(per); ////.get(index)

  for (int i = 0; i < person.size(); i++) {
  System.out.println(person.get(i)); //.get(index)
  }

  //list总是否包含某个元素
  List<String> fruits=new ArrayList<>();
  fruits.add("苹果");
  fruits.add("香蕉");
  fruits.add("桃子");
  //for循环遍历list
  for (int i = 0; i < fruits.size(); i++) {
  System.out.println(fruits.get(i));
  }
  String appleString="苹果";
  //true or false
  System.out.println("fruits中是否包含苹果:"+fruits.contains(appleString));

  if (fruits.contains(appleString)) {
  System.out.println("我喜欢吃苹果");
  }else {
  System.out.println("我不开心");
  }

  //list中根据索引将元素数值改变(替换)
  String a="白龙马", b="沙和尚", c="八戒", d="唐僧", e="悟空";
  List<String> people=new ArrayList<>();
  people.add(a);
  people.add(b);
  people.add(c);
  people.set(0, d); //.set(index, element) //将d唐僧放到list中索引为0的位置,替换a白龙马
  people.add(1, e); //.add(index, element); //将e悟空放到list中索引为1的位置,原来位置的b沙和尚后移一位

  //增强for循环遍历list
  for(String str:people){
  System.out.println(str);
  }

  //list中查看(判断)元素的索引
  List<String> names=new ArrayList<>();
  names.add("刘备"); //索引为0
  names.add("关羽"); //索引为1
  names.add("张飞"); //索引为2
  names.add("刘备"); //索引为3
  names.add("张飞"); //索引为4
  System.out.println(names.indexOf("刘备"));
  System.out.println(names.lastIndexOf("刘备"));
  System.out.println(names.indexOf("张飞"));
  System.out.println(names.lastIndexOf("张飞"));

  //根据元素索引位置进行的判断
  if (names.indexOf("刘备")==0) {
  System.out.println("刘备在这里");
  }else if (names.lastIndexOf("刘备")==3) {
  System.out.println("刘备在那里");
  }else {
  System.out.println("刘备到底在哪里?");
  }

  //利用list中索引位置重新生成一个新的list(截取集合)
  List<String> phone=new ArrayList<>();
  phone.add("三星"); //索引为0
  phone.add("苹果"); //索引为1
  phone.add("锤子"); //索引为2
  phone.add("华为"); //索引为3
  phone.add("小米"); //索引为4
  //原list进行遍历
  for(String pho:phone){
  System.out.println(pho);
  }
  //生成新list
  phone=phone.subList(1, 4); //.subList(fromIndex, toIndex) //利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3
  for (int i = 0; i < phone.size(); i++) { // phone.size() 该方法得到list中的元素数的和
  System.out.println("新的list包含的元素是"+phone.get(i));
  }

  //对比两个list中的所有元素
  //两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象
  if (person.equals(fruits)) {
  System.out.println("两个list中的所有元素相同");
  }else {
  System.out.println("两个list中的所有元素不一样");
  }

  if (person.hashCode()==fruits.hashCode()) {
  System.out.println("我们相同");
  }else {
  System.out.println("我们不一样");
  }

  //判断list是否为空
  //空则返回true,非空则返回false
  if (person.isEmpty()) {
  System.out.println("空的");
  }else {
  System.out.println("不是空的");
  }

  //返回Iterator集合对象
  System.out.println("返回Iterator集合对象:"+person.iterator());

  //将集合转换为字符串
  String liString="";
  liString=person.toString();
  System.out.println("将集合转换为字符串:"+liString);

  //将集合转换为数组,默认类型
  System.out.println("将集合转换为数组:"+person.toArray());

  ////将集合转换为指定类型(友好的处理)
  //1.默认类型
  List<Object> listsStrings=new ArrayList<>();
  for (int i = 0; i < person.size(); i++) {
  listsStrings.add(person.get(i));
  }
  //2.指定类型
  List<StringBuffer> lst=new ArrayList<>();
  for(String string:person){
  lst.add(StringBuffer(string));
  }

 }

 private static StringBuffer StringBuffer(String string) {
 return null;
 }

 }

到此这篇关于java中list的用法和实例讲解的文章就介绍到这了,更多相关java list内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java LinkedList集合功能实例解析

    由于LinkedList底层数据结构是链表,因此有一些特有的功能从链表对应到集合中. 框架代码: public class LinkedListDemo { public static void main(String[] args) { //创建集合对象 LinkedList<String> linkedList = new LinkedList<String>(); //添加元素 linkedList.add("hello"); linkedList.add

  • java List去掉重复元素的几种方式(小结)

    使用LinkedHashSet删除arraylist中的重复数据(有序) LinkedHashSet是在一个ArrayList删除重复数据的最佳方法.LinkedHashSet在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 List<String> words= Arrays.asList("a","b","b","c","c","d"); HashSet<

  • 如何去除Java中List集合中的重复数据

    1.循环list中的所有元素然后删除重复 public class duplicatRemoval { public static List removeDuplicate(List list){ for(int i=0;i<list. size()-1;i++){ for(int j=list.size()-1;j>i;j--){ if(list. get(j). equals(list.get(i))){ list.remove(j); } } } return list; } } 总结:

  • Json字符串转Java对象和List代码实例

    对象POJO和JSON互转 public class JsonUtil { /** * JSON 转 POJO */ public static <T> T getObject(String pojo, Class<T> tclass) { try { return JSONObject.parseObject(pojo, tclass); } catch (Exception e) { log.error(tclass + "转 JSON 失败"); } re

  • 6种方法初始化JAVA中的list集合

    List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下. 1.常规方式 List<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("PHP"); languages.add("Python"); System.out.println

  • Java List集合方法及遍历过程代码解析

    集合元素框架 public class ListDemo02 { public static void main(String[] args) { //创建集合对象 List<String> list = new ArrayList<String>(); //添加元素 list.add("hello"); list.add("world"); list.add("java"); //输出集合对象 System.out.pr

  • Java初始化List方法代码实例

    List指的是集合.<>是泛型,里面指定了这个集合中存放的是什么数据. 比如有一个学生类Student,Student里面包含了学生的一些信息.这样每一个Student对象就代表了一个学生.此时List<Student>就代表这个集合中存放了很多个学生对象,这个集合就像一个班级一样. 第一种 /** * 第一种方式 * 常规方式 */ @Test public void one(){ List<String> languages = new ArrayList<&

  • java中list的用法和实例讲解

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引位置重新生成一个新的list(截取集合): 对比两个list中的所有元素: 判断list是否为空: 返回Iterator集合对象: 将集合转换为字符串: 将集合转换为数组: 集合类型转换: 去重复: 备注:内容中代码具有关联性. 1.list中添加,获取,删除元素: 添加方法是:.add(e): 获

  • java 中动态代理机制的实例讲解

    java 中动态代理机制的实例讲解 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾. 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)

  • 基于Java中UDP的广播形式(实例讲解)

    UDP---用户数据报协议,是一个简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地 ,也不能保证数据包到达的顺序.由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快. 在Java中UDP的实现: * UDP: * 客户端: * 1.创建用于UDP通信的socket对象---DatagramSocket(用于UDP数据的发送和接收)---数据报套接字 * 2.准备数据,封装包

  • java中使用map排序的实例讲解

    对列表进行排序也是我们经常遇到的问题,这里缩小一下范围,使用map来对列表排序.相信大家都有过TreeMap排序的经历,不过Map.Entry能按值进行排序,在用法上略胜一筹.下面我们会对这两种map排序的方法分别进行介绍,着重讲解Map.Entry排序的方法. 1.Map.Entry方法 把Map.Entry放进list,再用Comparator对list进行排序 List list = new ArrayList(map.entrySet()); Collections.sort(list,

  • Java自动化测试中多数据源的切换(实例讲解)

    在做自动化测试时,数据驱动是一个很重要的概念,当数据与脚本分离后,面对茫茫多的数据,管理数据又成了一个大问题,而数据源又可能面对多个,就跟在开发过程中,有时候要连接MYSQL,有时候又要连接SQL SERVER一样,如何做到快速切换?下面的示例中,我们将从一个数据源开始,一步步的演示下去: 一. 用外部文件做数据驱动的基本写法 1.1 我们在做数据驱动时,把数据存储在JAVA的属性文件中:data.properties username=test password=123456 1.2 解析pr

  • Java中序列化和反序列化的完整讲解

    目录 一.序列化 二.序列化和反序列化的应用 三.序列化和反序列化地实现 3.1.JDK类库提供的序列化API 3.2.序列化要求 3.3.实现java序列化和反序列化的三种方法 四.CustomerForm 类序列化和反序列化演示 五.Externalizable接口实现序列化与反序列化 5.1.Externalizable 的不同点 5.2.CustomerForm 实现类 Externalizable 5.3.Externalizable 实现序列化和反序列化 总结 一.序列化 1.1.S

  • java 中模式匹配算法-KMP算法实例详解

    java 中模式匹配算法-KMP算法实例详解 朴素模式匹配算法的最大问题就是太低效了.于是三位前辈发表了一种KMP算法,其中三个字母分别是这三个人名的首字母大写. 简单的说,KMP算法的对于主串的当前位置不回溯.也就是说,如果主串某次比较时,当前下标为i,i之前的字符和子串对应的字符匹配,那么不要再像朴素算法那样将主串的下标回溯,比如主串为"abcababcabcabcabcabc",子串为"abcabx".第一次匹配的时候,主串1,2,3,4,5字符都和子串相应的

  • java中静态导入机制用法实例详解

    java中静态导入机制用法实例详解 这里主要讲解了如何使用Java中静态机制的用法,这里提供了简单实例大家可以参考下. 静态常量类 在java开发中,我们会经常用到一些静态常量用于状态判断等操作.为了能够在多个地方复用这些常量,通常每个模块都会加一个常量类,举个简单的列子: import com.sky.OrderMouleConsstants; /** * Created by gantianxing on 2017/4/21. */ public class Test { public vo

  • Java异常 Exception类及其子类(实例讲解)

    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.catch.finally.throw.throws进行管理.基本过程是用try包住要监视的语句,如果在try内出现异常,则异常会被抛出,catch中捕获抛出的异常并做处理,finally一定会完成未尽事宜. 练习: package com.swift; public class Exception1

  • java使用IO流对数组排序实例讲解

    在学会了java中io流的使用后,我们对于数组的排序,又多了一种使用方法.大家知道流处理数据的效率是比较理想的,那么在具体操作数组排序上,很多人对于排序的方法还没有明确.下面我们先java使用流对数组排序的思路为大家进行梳理,然后带来对应的实例代码方法. 1.排序思路 (1)从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取 (2)询问用户需要多少位数的数组 (3)转换为数字类型 (4)将用户输入数字存入数组 (5)把数组按排序需求并打印出来 2.实例 public stat

随机推荐