分享一個基於java ArrayList的簡單MQ隊列,用在串連多個藍牙裝置一個一個連線應用程式中
import java.util.ArrayList;public class TestMQ {private static ArrayList<String> conncetMq = new ArrayList<String>(); public static void main(String[] args) { System.out.println(getMq()); addMq("aaa"); addMq("bbb"); addMq("ccc"); addMq("aaa"); addMq("bbb"); System.out.println(getMq()); System.out.println("the arrayList: " + conncetMq); requeueMq("aaa"); System.out.println("the arrayList: " + conncetMq); //index最大的一個是最後添加的 removeMq("bbb"); System.out.println("the arrayList: " + conncetMq); removeMq("bbb"); System.out.println("the arrayList: " + conncetMq); } //擷取第一個隊列元素 public static String getMq(){ if(conncetMq.size() > 0){ return conncetMq.get(0); } return ""; } //清除元素 public static void clearMq(){ conncetMq.clear(); } //重新排隊 public static void requeueMq(String address){ for(String addr : conncetMq){ if(addr.equalsIgnoreCase(address)){ conncetMq.remove(address); conncetMq.add(address); break; } } } //刪除隊列元素 public static void removeMq(String address){ for(String addr : conncetMq){ if(addr.equalsIgnoreCase(address)){ conncetMq.remove(address); break; } } } //添加隊列元素 不能重複 public static void addMq(String address){ boolean inMq = false; for(String addr : conncetMq){ if(addr.equalsIgnoreCase(address)){ inMq = true; break; } } if(!inMq){ conncetMq.add(address); } } }