Java 如何打印出List中得值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 如何打印出List中得值相关的知识,希望对你有一定的参考价值。
现在有一段代码:
List<Float[]> Price = new FastList<Float[]>();
String[] _price = Settings.getProperty("Price", "0,0").split(";"); //从配置文件中读数据
for(String tmpprice : _price)//开始向List中添加数据
String[] _tmpprice = tmpprice.split(",");
try
Price.add(new Float[] Float.valueOf(_tmpprice[0]), Float.valueOf(_tmpprice[1]));
catch(NumberFormatException e)
请问怎样能通过System.out.println的方式在屏幕输出List(Price)中的各个值
import java.util.ArrayList;
import java.util.List;
/**
*
* @author 愿做无聊听众6
*
*/
public class Test
public static void main(String[] args)
Float[] fl1=new Float[3];//模拟数据1
fl1[0]=2.8f;
fl1[0]=08f;
fl1[0]=18f;
Float[] fl2=new Float[3];//模拟数据2
fl2[0]=2f;
fl2[0]=82f;
fl2[0]=33f;
List<Float[]> list=new ArrayList<Float[]>();//集合
list.add(fl1);
list.add(fl2);
for (Float[] floats : list) //------------------遍历
for (int i = 0; i < floats.length; i++)
System.out.print(floats[i]+" --> ");
System.out.println();
参考技术B 两层for就行了追问
详细一点好吗
我不知道怎么写
for( Float[] listItem: Price )
for(Float f:listItem)
System.out.print(f);
System.out.print(" ");
System.out.println(" ");//换行
不太行 有其他的办法吗 Eclipse提示发生错误:
只能通过 java.lang.Iterable 的数组或实例进行迭代
那把 for(Float f:listItem) 改成 for(int i=0,length=listItem.length;i<length;i++)
System.out.print(listItem[i]);
System.out.print(" ");
交替打印出奇数和偶数
两个线程如何交替打印出奇数和偶数
分析
两个线程交替打印奇数和偶数,最关键的是如何协作的问题。
- 打印的数可以用java里面的
atomicInteger
来保证原子性; - 打印何时结束需要设置一个上限,比如打印到100结束;
1 public class PrintABAtomic{ 2 private static final int MAX_PRINT_NUM = 100; 3 private static final AtomicInteger atomicInteger = new AtomicInteger(0); 4 5 public void printAB(){ 6 new Thread(() -> { 7 while (atomicInteger.get() < MAX_PRINT_NUM){ 8 //打印奇数 9 if(atomicInteger.get() % 2 == 0){ 10 //log.info("num:" + atomicInteger.get()); 11 System.out.println("num:" + atomicInteger.get()); 12 atomicInteger.incrementAndGet(); 13 } 14 } 15 }).start(); 16 17 new Thread(() -> { 18 while (atomicInteger.get() < MAX_PRINT_NUM) { 19 // 打印偶数. 20 if (atomicInteger.get() % 2 == 1) { 21 //log.info("num:" + atomicInteger.get()); 22 System.out.println("num:" + atomicInteger.get()); 23 24 atomicInteger.incrementAndGet(); 25 } 26 } 27 }).start(); 28 }
还可以采用另一种办法。用volatile
的方式来实现。
1 public class PrintABVolatile { 2 private static final int MAX_VALUE_NUM = 100; 3 private static volatile int count = 0; 4 5 6 public void printAB(){ 7 new Thread(() -> { 8 while(count < MAX_VALUE_NUM){ 9 if(count % 2 == 0){ 10 System.out.println("偶数线程num" + count); 11 count++; 12 } 13 } 14 }).start(); 15 new Thread(() -> { 16 while(count < MAX_VALUE_NUM){ 17 if(count % 2 == 1){ 18 System.out.println("奇数线程num" + count); 19 count++; 20 } 21 } 22 }).start(); 23 } 24 }
直接用main方法调试
当然,这种方法仅用于调试,不能用于写单元测试。
1 public class TestRunner { 2 public static void main(String[] args) { 3 /*PrintABAtomic printABAtomic = new PrintABAtomic(); 4 printABAtomic.printAB();*/ 5 PrintABVolatile printABVolatile = new PrintABVolatile(); 6 printABVolatile.printAB(); 7 } 8 }
提供了两种方法,分别利用volatile
的可见性和AtomicInteger
的原子性对两个线程进行协调。
以上是关于Java 如何打印出List中得值的主要内容,如果未能解决你的问题,请参考以下文章