Java 使用对象列表,如何访问对象属性并打印它们?

Java 使用对象列表,如何访问对象属性并打印它们?,java,android,flutter,dart,Java,Android,Flutter,Dart,简短的问题 我试图学习如何使用对象来指定列表等并访问对象属性。我就是不能让它正常工作 这就是我想要实现的目标: 创建列表对象列表 将对象添加到列表中 从列表中获取特定对象 在控制台中打印它 我的代码: 对象类 class SearchObject { final String barName; final String latitudeDbRef; SearchObject({this.barName, this.latitudeDbRef}); } 列出声明和对象 List&l

简短的问题

我试图学习如何使用对象来指定列表等并访问对象属性。我就是不能让它正常工作

这就是我想要实现的目标:

  • 创建列表对象列表
  • 将对象添加到列表中
  • 从列表中获取特定对象
  • 在控制台中打印它 我的代码:

    对象类

    class SearchObject {
      final String barName;
      final String latitudeDbRef;
    
      SearchObject({this.barName, this.latitudeDbRef});
    }
    
    列出声明和对象

    List<SearchObject> searchObject = new List();
    SearchObject sbo = new SearchObject();
    
    searchObject.add(SearchObject(barName: value, latitudeDbRef: "test"));
    
    print(searchObject.getRange(index, index + 1).map((sbo) {
                        String bar = sbo.barName.toString();
                        String lat = sbo.latitudeDbRef.toString();
                        print("Barname: $bar");
                        print("latName: $lat");
                      }));
    
    flutter: Barname: barname
    flutter: latName: test
    flutter: (null)   <- Get rid of this?
    
    访问和打印特定对象

    List<SearchObject> searchObject = new List();
    SearchObject sbo = new SearchObject();
    
    searchObject.add(SearchObject(barName: value, latitudeDbRef: "test"));
    
    print(searchObject.getRange(index, index + 1).map((sbo) {
                        String bar = sbo.barName.toString();
                        String lat = sbo.latitudeDbRef.toString();
                        print("Barname: $bar");
                        print("latName: $lat");
                      }));
    
    flutter: Barname: barname
    flutter: latName: test
    flutter: (null)   <- Get rid of this?
    
    输出

    List<SearchObject> searchObject = new List();
    SearchObject sbo = new SearchObject();
    
    searchObject.add(SearchObject(barName: value, latitudeDbRef: "test"));
    
    print(searchObject.getRange(index, index + 1).map((sbo) {
                        String bar = sbo.barName.toString();
                        String lat = sbo.latitudeDbRef.toString();
                        print("Barname: $bar");
                        print("latName: $lat");
                      }));
    
    flutter: Barname: barname
    flutter: latName: test
    flutter: (null)   <- Get rid of this?
    
    flatter:Barname:Barname
    颤振:latName:测试
    颤振:(null)
    class SearchObject{
    最终字符串barName;
    最后的字符串latitudeDbRef;
    const SearchObject({this.barName,this.latitudeDbRef});
    }
    void main(){
    final newSearchObject=新的搜索对象(barName:“foo”,latudedbref:“bar”);
    //如何填充列表:
    //方法0:内联
    最终搜索对象=[newSearchObject];
    //方法1:使用.add
    最终搜索对象2=[];
    searchObjects2.add(newSearchObject);
    //方法2:使用+运算符
    最终searchObjects3=searchObjects+[newSearchObject];
    //方法3:使用扩展运算符:
    最终搜索对象4=[…搜索对象,新闻搜索对象];
    //使用[]运算符访问特定对象
    final specificObject=searchObjects4[0];//小心,如果列表中没有该索引的项,它将抛出。
    print(“barName:${specificObject.barName}”);//prints:barName:foo
    print(“latitudeDbRef:${specific object.latitudeDbRef}”);//prints:latitudeDbRef:bar
    //迭代列表以打印详细信息:
    searchObjects4.forEach((对象){
    print(“barName:${object.barName}”);//prints:barName:foo
    打印(“latitudeDbRef:${object.latitudeDbRef}”);//打印:latitudeDbRef:bar
    });
    //在iterable中收集详细信息:
    final detailsIterable=searchObjects4.map((对象){
    返回“barName:${object.barName},latitudeDbRef:${object.latitudeDbRef}”;
    });
    final detailsList=detailsIterable.toList();
    print(detailsList);//prints:[barName:foo,latitudeDbRef:bar,barName:foo,latitudeDbRef:bar]
    }
    
    我希望这有帮助。

    类SearchObject{
    最终字符串barName;
    最后的字符串latitudeDbRef;
    const SearchObject({this.barName,this.latitudeDbRef});
    }
    void main(){
    final newSearchObject=新的搜索对象(barName:“foo”,latudedbref:“bar”);
    //如何填充列表:
    //方法0:内联
    最终搜索对象=[newSearchObject];
    //方法1:使用.add
    最终搜索对象2=[];
    searchObjects2.add(newSearchObject);
    //方法2:使用+运算符
    最终searchObjects3=searchObjects+[newSearchObject];
    //方法3:使用扩展运算符:
    最终搜索对象4=[…搜索对象,新闻搜索对象];
    //使用[]运算符访问特定对象
    final specificObject=searchObjects4[0];//小心,如果列表中没有该索引的项,它将抛出。
    print(“barName:${specificObject.barName}”);//prints:barName:foo
    print(“latitudeDbRef:${specific object.latitudeDbRef}”);//prints:latitudeDbRef:bar
    //迭代列表以打印详细信息:
    searchObjects4.forEach((对象){
    print(“barName:${object.barName}”);//prints:barName:foo
    打印(“latitudeDbRef:${object.latitudeDbRef}”);//打印:latitudeDbRef:bar
    });
    //在iterable中收集详细信息:
    final detailsIterable=searchObjects4.map((对象){
    返回“barName:${object.barName},latitudeDbRef:${object.latitudeDbRef}”;
    });
    final detailsList=detailsIterable.toList();
    print(detailsList);//prints:[barName:foo,latitudeDbRef:bar,barName:foo,latitudeDbRef:bar]
    }
    
    我希望这会有所帮助。

    在对象列表中,您可以使用list.singleWhere使用其属性访问对象 请参见下面代码中的示例:

    class SearchObject {
      final String barName;
      final String latitudeDbRef;
    
      SearchObject({this.barName, this.latitudeDbRef});
    }
    
    void main(){
      List<SearchObject> sbList = new List();
    
      sbList.add(SearchObject(barName: 'barName0', latitudeDbRef: "latitudeDbRef0"));
      sbList.add(SearchObject(barName: 'barName1', latitudeDbRef: "latitudeDbRef1"));
      sbList.add(SearchObject(barName: 'barName2', latitudeDbRef: "latitudeDbRef2"));
      sbList.add(SearchObject(barName: 'barName3', latitudeDbRef: "latitudeDbRef3"));
    
      // retriving searchObject using its properties from searchObjectList.
      SearchObject retrievedSB = sbList.singleWhere((tempSB) => tempSB.barName=="barName2" && tempSB.latitudeDbRef=="latitudeDbRef2");
    
      print(retrievedSB.barName + " " + retrievedSB.latitudeDbRef);
      // output: barName2 latitudeDbRef2
    
    
      // retriving searchObject using ONE of its properties from searchObjectList.
      SearchObject retrievedSB2 = sbList.singleWhere((tempSB) => tempSB.latitudeDbRef=="latitudeDbRef1");
    
      print(retrievedSB2.barName + " " + retrievedSB2.latitudeDbRef);
      //output: barName1 latitudeDbRef1
    }
    
    类搜索对象{
    最终字符串barName;
    最后的字符串latitudeDbRef;
    SearchObject({this.barName,this.latitudeDbRef});
    }
    void main(){
    List sbList=新列表();
    添加(SearchObject(barName:'barName0',latitudeDbRef:'latitudeDbRef0”);
    添加(SearchObject(barName:'barName1',latitudeDbRef:'latitudeDbRef1”);
    添加(SearchObject(barName:'barName2',latudedbref:'latudedbref2”);
    添加(SearchObject(barName:'barName3',latitudeDbRef:'latitudeDbRef3”);
    //使用searchObjectList中的属性检索searchObject。
    SearchObject retrievedSB=sbList.singleWhere((tempSB)=>tempSB.barName==“barName2”和&tempSB.latitudeDbRef==“latitudeDbRef2”);
    打印(retrievedSB.barName+“”+retrievedSB.latitudeDbRef);
    //输出:barName2 latitudeDbRef2
    //正在使用searchObjectList中的某个属性检索searchObject。
    SearchObject retrievedSB2=sbList.singleWhere((tempSB)=>tempSB.latitudeDbRef==“latitudeDbRef1”);
    打印(retrievedSB2.barName+“”+retrievedSB2.latitudeDbRef);
    //输出:barName1 latitudeDbRef1
    }
    
    在对象列表中,您可以使用list.singleWhere使用对象的属性访问对象 请参见下面代码中的示例:

    class SearchObject {
      final String barName;
      final String latitudeDbRef;
    
      SearchObject({this.barName, this.latitudeDbRef});
    }
    
    void main(){
      List<SearchObject> sbList = new List();
    
      sbList.add(SearchObject(barName: 'barName0', latitudeDbRef: "latitudeDbRef0"));
      sbList.add(SearchObject(barName: 'barName1', latitudeDbRef: "latitudeDbRef1"));
      sbList.add(SearchObject(barName: 'barName2', latitudeDbRef: "latitudeDbRef2"));
      sbList.add(SearchObject(barName: 'barName3', latitudeDbRef: "latitudeDbRef3"));
    
      // retriving searchObject using its properties from searchObjectList.
      SearchObject retrievedSB = sbList.singleWhere((tempSB) => tempSB.barName=="barName2" && tempSB.latitudeDbRef=="latitudeDbRef2");
    
      print(retrievedSB.barName + " " + retrievedSB.latitudeDbRef);
      // output: barName2 latitudeDbRef2
    
    
      // retriving searchObject using ONE of its properties from searchObjectList.
      SearchObject retrievedSB2 = sbList.singleWhere((tempSB) => tempSB.latitudeDbRef=="latitudeDbRef1");
    
      print(retrievedSB2.barName + " " + retrievedSB2.latitudeDbRef);
      //output: barName1 latitudeDbRef1
    }
    
    类搜索对象{
    最终字符串barName;
    最后的字符串latitudeDbRef;
    SearchObject({this.barName,this.latitudeDbRef});
    }
    void main(){
    List sbList=新列表();
    添加(SearchObject(barName:'barName0',latitudeDbRef:'latitudeDbRef0”);
    添加(SearchObject(barName:'barName1',latitudeDbRef:'latitudeDbRef1”);
    添加(SearchObject(barName:'barName2',latudedbref:'latudedbref2”);
    添加(SearchObject(barName:'barName3',latitudeDbRef:'latitudeDbRef3”);
    //使用searchObjectList中的属性检索searchObject。
    SearchObject retrievedSB=sbList.singleWhere((tempSB)=>tempSB.barName==“barName2”和&tempSB.latitudeDbRef==“latitudeDbRef2”);
    打印(retrievedSB.barName+“”+retrievedSB.latitudeDbRef);
    //产出:b