java如何从List中取值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何从List中取值相关的知识,希望对你有一定的参考价值。

在下面这个发方法里,生成了两个随机数
public List<String> generatePonits()

List<String> pointList = new ArrayList<String>();
Random random = new Random();
for (; pointList.size() <= this.VERTEX_NUMBER;)
int x = Math.abs(random.nextInt())%100;
int y = Math.abs(random.nextInt())%100;
String pointStr = "(" + x + "," + y + ")";
if (!pointList.contains(pointStr))
pointList.add(pointStr);


return pointList;

我想在另外一个方法里分别提取到在这个方法中生成的两个随机数,应该用什么方法?
谢谢

要从一个List中取值,可以使用get()方法来获取指定索引位置的元素。在你提供的代码中,generatePonits()方法返回的是一个String类型的List,包含多个由随机生成的坐标组成的字符串。

如果你想要在另一个方法中分别提取出两个随机数,可以先通过get()方法获取对应索引位置的坐标字符串,然后再将其解析为数字。具体步骤如下:

```java
// 获取generatePonits()方法随机生成的第一个坐标字符串,并将其解析为数字
String point1Str = generatePonits().get(0);
int x1 = Integer.parseInt(point1Str.substring(1, point1Str.indexOf(",")));
int y1 = Integer.parseInt(point1Str.substring(point1Str.indexOf(",") + 1, point1Str.length() - 1));

// 获取generatePonits()方法随机生成的第二个坐标字符串,并将其解析为数字
String point2Str = generatePonits().get(1);
int x2 = Integer.parseInt(point2Str.substring(1, point2Str.indexOf(",")));
int y2 = Integer.parseInt(point2Str.substring(point2Str.indexOf(",") + 1, point2Str.length() - 1));
```

以上代码假设你想要获取generatePonits()方法随机生成的第一个和第二个坐标,并将它们包含的x和y坐标分别解析为整数。这里使用了String类的substring()方法来截取坐标字符串中的x和y坐标部分,并用Integer类的parseInt()方法将它们解析为整数。需要注意的是,由于坐标字符串的格式是"(x,y)",因此在使用substring()方法时需要去掉开头的"("和结尾的")"。

当然,如果你仅仅只是想在generatePonits()方法和另一个方法之间传递生成的随机数,也可以考虑将它们定义为类成员变量,而不是在generatePonits()方法内部声明。这样就可以在不同的方法之间共享这些随机数了。
参考技术A List<String> lists=new ArrayList<String>();
lists.add("aaa");
lists.add("bbb");
lists.add("ccc");
lists.add("ddd");
for(String list : lists)

System.out.println(list);
参考技术B 如果是在同一个类里:
List<String> pointList = generatePonits();
pointList.get(0); //获取第1个,以此类推
参考技术C List<String> pointList = generatePonits();

if(pointList != null && pointList.size() == 2)

int x = pointList.get(0);
int y = pointList .get(1);
本回答被提问者采纳
参考技术D 直接调用这个方法 把返回值接收了之后 pointList.get(0);就OK了 集合的下标从零开始的

java 如何将一个list中的值全部复制到另一个list中?

如题!不通过循环是否能达到这种效果!就如LinkedList中就可以直接new LinkedList(原list)!

ArrayList<String> list1 = new ArrayList<String>();
list1.add("b");
list1.add("d");
// System.out.println(list1);
ArrayList<String> list2=new ArrayList<String>();
list2.addAll(list1);//将list1添加到list2中
System.out.println(list2);
参考技术A list.addAll(otherList);直接把要复制的list添加到目的list中就可以了。 参考技术B java.util.Collections.copy(List<? super T> dest, List<? extends T> src) 参考技术C

这个java api中已经提供了,我刚刚写了一个例子:

import java.util.*;

public class main 

    public static void main(String[] args) 

        LinkedList<String> list = new LinkedList<String>();

     list.add("a");

list.add("b");

// 用原有集合创建新集合

LinkedList<String> listCopy = new LinkedList<String>(list);

for(String s:listCopy)

System.out.println(s);

    

运行结果如图:

参考技术D DDDDD

以上是关于java如何从List中取值的主要内容,如果未能解决你的问题,请参考以下文章

java 对比两个list并取值

java 如何将一个list中的值全部复制到另一个list中?

java从list中取数,取前三行

java 如何判断list里某一字段值全部相等

java如何让list按照list里面的某个字段排序,list里面的有很多字段!

如何从变量中取值如果java中的Statement [关闭]