我正在创建一个存储到arraylist(项目键,数量和项目的价格)的篮子.如何仅更新数量而不是使用相同的Item键创建另一行.以下是该程序的结果.
Java Book 1 £48.90
Samsung Galaxy S7 1 £639.50
Speakers 3 £59.80
Java Book 2 £48.90
Samsung Galaxy S7 2 £639.50
Run Code Online (Sandbox Code Playgroud)
//////////////////////////////////////////////////
private void ItemsBasket(String name, int qty, String key) throws HeadlessException {
if (name == null) {
JOptionPane.showMessageDialog(null, "Please Selecet a key");
String imageFileName = "./images/" + key + ".png";
File imageFile = new File(imageFileName);
if (!imageFile.exists()) {
imageFileName = "./images/empty.png";
}
} else if (qty <= StockData.getQuantity(key)) {
arList.add(StockData.getName(key) + "\t\t " + qty + " " …Run Code Online (Sandbox Code Playgroud) 我有2个arraylists.
List<MyObject> firstList (Size=5)
List<MyObject> secondList = firstList;
Run Code Online (Sandbox Code Playgroud)
当我使用此命令时
secondList.remove(0);
Run Code Online (Sandbox Code Playgroud)
firstList中0位置的对象也被删除.我在这做错了什么?
我使用以下方法将我的数据添加到ArrayList.
ArrayList<Word> wordList = new ArrayList<Word>();
Word word = new Word();
word.set_id(id);
word.setWord(word);
word.setDefinition(definition);
wordList.add(word);
Run Code Online (Sandbox Code Playgroud)
添加一些数据后,我想找到我想在ArrayList中找到的任何id的位置.
我已经尝试了以下方法来获取id的位置.但这不起作用.
int position = wordList.indexOf(id);
Run Code Online (Sandbox Code Playgroud)
和
int position = wordList.lastIndexOf(id);
Run Code Online (Sandbox Code Playgroud)
因此,两个代码总是生成"position = -1".我怎样才能做到这一点?
编辑
这是Word.java类的代码.我该如何实现平等的方法?
public class Word {
private String _id, word, definition, favourite, usage;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public String getDefinition() {
return definition; …Run Code Online (Sandbox Code Playgroud) 我有两个ArrayList相同的模型类(即ListA和ListB),我添加了相同的数据.然后我只在第二个arraylist中添加了一些数据ListB.
现在,我只想要获取的数据是在两个不同的ListA和ListB,结果保存在第三个数组列表ListC.
我试过下面的代码.但是,所有元素都存储在其中ListC,而不是仅存储不同的元素:
ArrayList<C> ListC = new ArrayList<>();
for (int i = 0; i < ListA.size(); i++) {
for (int j = 0; j < ListB.size(); j++) {
if (ListA.get(i).getName() == ListB.get(j).getName()) {
Log.e("Do", "Nothing");
} else {
C c = new C(b.get(j).getName());
ListC.add(c);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑问题
ArrayList<Model> a = new ArrayList<>();
Model model = new Model();
model.setName("MaHi");
model.setAge("20"); …Run Code Online (Sandbox Code Playgroud) 我有一个对象的arraylist无法实现Comparator/Comparable接口.
对象有一个字段:'SequenceNumber',它是一个整数.我需要按照这个字段(从最低到最高)的顺序对arraylist进行排序,而不实现上面提到的接口.
有没有一种简单的方法可以做到这一点,我可以手动编写一个排序算法,但想知道是否有一个更有效(和更多无错误)的方式这样做,我在搜索时错过了?
注意:使用Java 7.
这里我有一个查询,其中我根据条件获取名称和值,我在列表中存储empid和empname的值
这是一段代码:
List<String> _empid = new ArrayList<String>();
List<String> _empname = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
在这里,我从数据库中获取值:
while (cur1.moveToNext()) {
if (cur1.getString(cur1.getColumnIndex("name"))
.equalsIgnoreCase("DIS_FIELD_COLLECTION_EXECUTIVE")) {
_empid.add(cur1.getString(cur1.getColumnIndex("value")));
} else if (cur1.getString(cur1.getColumnIndex("name"))
.equalsIgnoreCase("FIELD_EXECUTIVE_NAME")) {
_empname.add(cur1.getString(cur1.getColumnIndex("value")));
}
}
for (int i = 0; i < _empid.size(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", _empid.get(i));
map.put("name", _empname.get(i));
Log.e("forloop", _empid.get(i));
Log.e("forloop", _empname.get(i));
emp.add(map);
adp_emp = new Listadapter_emp(emp, Tracker_filter_Activity.this);
lst_employee.setAdapter(adp_emp);
}
Run Code Online (Sandbox Code Playgroud)
这里的输出是这样的
01-17 12:16:49.696 29369-29369/com.wp.focus E/forloop: 5
01-17 12:16:49.696 29369-29369/com.wp.focus E/forloop: AZAD NAGAR-TAN001
01-17 12:16:49.697 29369-29369/com.wp.focus E/forloop: 3 …Run Code Online (Sandbox Code Playgroud) 我正在解析一个jsonData并从中获取video_url.我的要求是在ArrayList中添加video_url.我已经尝试了所有内容并在我的logCat中得到了结果:
E/VIDEO URL: [https://firebasestorage.googleapis.com/v0/b/myhovi-android.appspot.com/o/MySavedVideo%2FJIMyHoviVideo.mp4?alt=media&token=c103543e-31f0-4682-9b44-09d679c76699]
E/VIDEO URL: [https://firebasestorage.googleapis.com/v0/b/myhovi-android.appspot.com/o/MySavedVideo%2FBMMyHoviVideo.mp4?alt=media&token=9bcf98a1-dad1-4f63-864f-7559ef1d49c1]
Run Code Online (Sandbox Code Playgroud)
现在,您可以清楚地看到video_url以这种格式出现,我希望包含两个url的单个ArrayList.
这是我为打印所需结果所做的代码,但它没有成功:
private void jsonParsingVideoData(String projectVideos, String projectId) throws JSONException{
JSONArray jsonArray = new JSONArray(projectVideos);
ArrayList<String> video_url = null;
for(int i=0; i< jsonArray.length() ; i++){
JSONObject jObject = jsonArray.getJSONObject(i);
video_url = new ArrayList<>(Arrays.asList(jObject.getString("video_url")));
Log.e("VIDEO URL", video_url.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过这种方式,但它失败了,如果我这样做的话,只有一个输出就可以了.
for( String string : video_url){
ArrayList<String> string1 = new ArrayList<>();
string.add(string);
Log.e("LOGS", string1.toString());
}
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,输出只有一个,并采用以下格式:
E/LOGS: [https://firebasestorage.googleapis.com/v0/b/myhovi-android.appspot.com/o/MySavedVideo%2FBMMyHoviVideo.mp4?alt=media&token=9bcf98a1-dad1-4f63-864f-7559ef1d49c1]
Run Code Online (Sandbox Code Playgroud)
请帮助我,我已经尝试了很多.谢谢.
问题是我需要某种方法来找出当要求输入特定数字时数组列表是否包含重复数字。
我得到的基本代码是:
public static boolean moreThanOnce(ArrayList<Integer> list, int number) {
// write your code here
}
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(2);
list.add(7);
list.add(2);
System.out.println("Type a number: ");
int number = Integer.parseInt(reader.nextLine());
if (moreThanOnce(list, number)) {
System.out.println(number + " appears more than once.");
} else {
System.out.println(number + " does not appear more than once.");
}
}
Run Code Online (Sandbox Code Playgroud)
老实说,我需要帮助来决定要走的方向。由于如果对象出现两次或更多次,它需要工作,所以当它检测到出现特定数字时,我不能简单地翻转布尔值,因为如果该数字出现3次,它将失败。
我感谢有关如何进行的一些建议。
我有一个关于从我的价值中获取价值的问题ArrayList<HashMap<String, String>>.
我的代码是:
ArrayList<HashMap<String, String>> myArrayList;
Run Code Online (Sandbox Code Playgroud)
然后:
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_ID, id);
map.put(TAG_NAME, name);
myArrayList.add(map);
Run Code Online (Sandbox Code Playgroud)
例如,如果我想获取名称,我尝试如下,但我获得了运行时错误(应用程序崩溃):
System.out.println(myArrayList.get(1).get(TAG_NAME));
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
非常感谢你!
arraylist ×10
java ×10
android ×4
hashmap ×2
sorting ×2
collections ×1
comparable ×1
object ×1