JAVA中类与链表

1.test.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class test {
  private static class AudioSetting{
    String name;
    String deviceid;
    String vid;
    String pid;
  }
  private static String getcurusbaudio(){
    String filename = "./usb_audio_info";
    File file = new File(filename);
    BufferedReader reader = null;
    String tempString = null;
    try{
      int i = 1;
      reader = new BufferedReader(new FileReader(file));
      tempString = reader.readLine();
      reader.close();
    }catch (IOException e) {
       e.printStackTrace();
    }
    return tempString;
  }
  private static String getcurcamaudio(){
    ArrayList<AudioSetting>  settings = new ArrayList<AudioSetting>();
    String curcamaudio = null;
    String name = null;
    String deviceid = null;
    String filename = "./cards";
    File file = new File(filename);
    BufferedReader reader = null;
    try {
      int i = 1;
      reader = new BufferedReader(new FileReader(file));
      String tempString = null;
      while ((tempString = reader.readLine()) != null) {
        AudioSetting tmpcard = new AudioSetting();
        if((i % 3 == 1) && (tempString.length() > 18)){
          deviceid = tempString.substring(1,2);
          name = tempString.substring(4,19);
        }
        if((i % 3 == 0) && (tempString.length() > 41)){
          tmpcard.deviceid = deviceid;
          tmpcard.name = name;
          tmpcard.vid = tempString.substring(33,37);
          tmpcard.pid = tempString.substring(38,42);
          settings.add(tmpcard);
        }
        i++;
      }
      reader.close();
    }catch (IOException e) {
       e.printStackTrace();
    }
    int j = 0;
    for(j = 0; j <= settings.size() - 1; j++){
      if(!settings.get(j).name.substring(0,5).equals("Audio")){
        curcamaudio = settings.get(j).vid + settings.get(j).pid + " " + settings.get(j).deviceid + " 0";
        break;
      }
    }
    settings.clear();
    return curcamaudio;
  }

  public static void main(String[] args){
    String setcamaudio = null;
    String getcuraudio = null;
    getcuraudio = getcurusbaudio();
    setcamaudio = getcurcamaudio();
    System.out.println("getcuraudio is " + getcuraudio);
    System.out.println("setcamaudio is " + setcamaudio);
    System.out.println("!getcuraudio.equals(setcamaudio) is " + !getcuraudio.equals(setcamaudio));
  }
}


cards

 0 [AMLM6TV        ]: SOC-Audio - AML-M6TV
                      AML-M6TV
                      USBid -
 1 [Audio          ]: USB-Audio - Wireless Audio
                      NA Wireless Audio at usb-lm0-1.4, full speed
                      USBid - USB1a1d:c001
 2 [Camera         ]: USB-Audio - USB 2.0 Camera
                      Sonix Technology Co., Ltd. USB 2.0 Camera at usb-lm0-1.2, high speed
                      USBid - USB0c45:6340
 3 [RX             ]: USB-Audio - USB RX
                      NANO  IC USB RX at usb-lm2-1, full speed
                      USBid - USB1d5a:c0b3

usb_audio_info

1d5ac0b3 2 0

2.编译

javac test.java

3.设置环境变量并运行

CLASSPATH=$CLASSPATH:.

echo $CLASSPATH

java test

结果

getcuraudio is 1d5ac0b3 2 0

setcamaudio is 0c456340 2 0




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的链表是一种数据结构,它可用于存储一系列具有相同类型的对象。链表中的每个对象都被称为节点,每个节点都包含数据和指向下一个节点的引用。 在Java中,链表一般使用Node类来实现。Node类具有两个属性:data用于存储数据,next用于指向下一个节点。在创建链表时,我们需要定义一个头节点,在链表的第一个位置,并将头节点的next属性指向第一个实际的节点。 链表的优点是可以动态地添加和删除节点,不需要事先定义链表的长度。相比于数组,链表的插入和删除操作更加高效。但是链表的缺点是访问链表中的任意一个节点的时候需要从头节点开始遍历,导致访问时间较长。 一般来说,我们可以通过遍历链表的方式来查找、插入和删除节点。例如,要查找具有特定值的节点,我们可以从头节点开始遍历链表,直到找到相应的节点。要在两个节点之间插入一个新节点,我们需要将新节点的next属性指向后一个节点,并将前一个节点的next属性指向新节点。要删除一个节点,我们将前一个节点的next属性指向后一个节点,从而跳过被删除的节点。 总之,Java中的链表是一种灵活的数据结构,它可以用于存储和操作一系列对象。通过不断遍历链表中的节点,我们可以对链表进行查找、插入和删除等操作。然而,由于链表的访问时间较长,需要在实际应用中根据场景和要求选择合适的数据结构。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值